NodeJS无法获得

时间:2018-02-08 04:26:52

标签: node.js

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;

当我在邮递员中尝试此操作时,您可以看到: enter image description here

我知道它必须非常简单,因为失败的电话几乎与工作电话完全相同 - 但我只是看不到它。

1 个答案:

答案 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这样的代码运行代码会经常抱怨这些类型的错误(有些不小心)不会抛出解释器错误。