节点J的路由不工作
Node Js routing not working
我正在尝试在nodejs中创建一个api。
我的server.js文件在之后
var http = require('http'),
path = require('path'),
async = require('async'),
socketio = require('socket.io'),
express = require('express'),
session = require('express-session'),
logger = require('morgan'),
bodyParser = require('body-parser');
var app = express();
var server = http.createServer(app);
var io = socketio.listen(server);
app.use(logger('dev'));
app.use(bodyParser.json());
app.all('/*', function(req, res, next) {
// CORS headers
res.header("Access-Control-Allow-Origin", "*"); // restrict it to the required domain
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
// Set custom headers for CORS
res.header('Access-Control-Allow-Headers', 'Content-type,Accept,X-Access-Token,X-Key');
if (req.method == 'OPTIONS') {
res.status(200).end();
} else {
next();
}
});
app.all('/api/*', [require('./middlewares/validateRequest')]);
//app.use(express.static(path.resolve(__dirname, 'client')));
app.use('/', require('./routes'));
// If no route is matched by now, it must be a 404
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
var messages = [];
var sockets = [];
......
server.listen(process.env.PORT || 3000, process.env.IP || "0.0.0.0", function(){
var addr = server.address();
console.log("Meeting Panel listening at", addr.address + ":" + addr.port);
});
my/routes目录具有index.js文件
var express = require('express');
var router = express.Router();
var auth = require('./auth.js');
var meetings = require('./meetings.js');
var user = require('./users.js');
/*
* Routes that can be accessed by any one
*/
router.post( '/login', auth.login);
/*
* Routes that can be accessed only by authenticated & authorized users
*/
router.get('/api/admin/users', user.getAll);
.....
.....
module.exports = router;
现在,当我打开/login页面时,我得到以下错误
Error: Not Found
at /home/ubuntu/workspace/server.js:46:15
at Layer.handle [as handle_request] (/home/ubuntu/workspace/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:312:13)
at /home/ubuntu/workspace/node_modules/express/lib/router/index.js:280:7
at Function.process_params (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:330:12)
at next (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:271:10)
at /home/ubuntu/workspace/node_modules/express/lib/router/index.js:618:15
at next (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:256:14)
at Function.handle (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:176:3)
at router (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:46:12)
/login
上的路由是在POST方法上定义的。如果您想从浏览器打开它(我认为这就是您正在做的),您应该定义router.get( '/login'...
。我想您不希望在GET方法上定义/login
路由,所以测试的另一个好选择是点击/api/admin/users
。
如果您只打开http://example/login在你的浏览器中,这将是一个get请求,所以在这种情况下,它不会找到你正在听post/login而不是get/login的路由。
相关文章:
- 节点J的路由不工作
- 路由不'我不在AngularJS工作
- 使用node/express在angular.js中不工作的路由
- 为什么获胜't此代码中的路由工作
- 无法获取用户 ID 路由参数以在反应路由器中继上工作
- 没有哈希“#”的 AngularJS 路由 - 无法让它工作
- AngularJS路由未按预期工作
- 节奏和余烬,我如何让它在所有路由中工作而不重复代码
- 如何在Microsoft IIS上使用反应路由器(createBrowserHistory)使路由工作
- AngularJs 路由不再工作.地址栏更改,但视图不会更改
- AngularJS 1.3 路由不工作;控制器从未调用
- 余烬与数据 - 路由模型无法一致地工作
- 在某些情况下,似乎无法让角度路由工作
- Cordova+AngularJs路由不工作
- ng路由工作不正常
- AngularJS+NodeJS路由-不工作
- 使主干路由正常工作
- 骨干JS路由没有像我预期的那样工作
- AngularJS路由不工作,但没有抛出任何错误
- Angularjs 路由无法正常工作