NodeJS的新手,我正在尝试获得一个基本端点。我实际上有三个不同的控制器,但其中一个不起作用。这是我的app.js
var express = require('express');
var app = express();
var db = require('./db');
var config = require('./config/config'); // get config file
global.__root = __dirname + '/';
var ApiController = require(__root + 'auth/ApiController');
app.use('/api/auth', ApiController);
var UserController = require(__root + 'user/UserController');
app.use('/api/users', UserController);
var AuthController = require(__root + 'auth/AuthController');
app.use('/api/auth/users', AuthController);
module.exports = app;
UserController和AuthController工作得很好,但是ApiController:
//this controller handles api token
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
router.use(bodyParser.urlencoded({ extended: false }));
router.use(bodyParser.json());
router.get('/apiToken') , function(req, res) {
console.log("received request at /apiToken");
res.status(200).send({ token: config.api.token });
};
module.exports = router;
我知道它必须非常简单,因为失败的电话几乎与工作电话完全相同 - 但我只是看不到它。
答案 0 :(得分:0)
这里有一个编码错误,在这一行的错误位置有一个关闭的paren,碰巧没有出现解释器错误,但没有按预期执行:
router.get('/apiToken') , function(req, res) {
// here ^
所以改变这个:
router.get('/apiToken') , function(req, res) {
console.log("received request at /apiToken");
res.status(200).send({ token: config.api.token });
};
到此:
router.get('/apiToken', function(req, res) {
console.log("received request at /apiToken");
res.send({ token: config.api.token });
});
仅供参考,不需要res.status(200)
,因为这是默认状态。您可以使用res.send(...)
,状态将自动设置为200。当您希望状态不是200时,您只需要使用res.status(xxx)
。
此外,通过像jshint这样的代码运行代码会经常抱怨这些类型的错误(有些不小心)不会抛出解释器错误。