我是 node.js 的初学者,但我更努力地尝试在 node + express js 中设置结构。我开始使用前端和单独的 API 结构。我为两者放置了一个 app.js API和前端。但是我的API不工作。当我调用 http://localhost:3000/api/users 时出现错误 Cannot GET/api/users .请帮忙
api
-controllers
-helpers
-middlewares
-models
-routes.js
app.js
controllers
helpers
middlewares
models
node_modules
package.json
public
views
应用程序.js
var express = require('express')
, app = express()
, bodyParser = require('body-parser')
, port = process.env.PORT || 3000
var path = require('path');
app.set('views', path.join(__dirname, 'views/'));
app.set('view engine', 'ejs')
app.use(express.static(__dirname + '/public'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))
app.use(require('./controllers'))
var routes = require('./api/routes');
app.use('/api', routes);
app.listen(port, function() {
console.log('Listening on port ' + port)
})
路由.js
var express = require('express')
, router = express.Router()
var usersController = require('./controllers/users');
module.exports = function (app) {
app.get('/users', usersController.getUser);
};
module.exports = router;
users.js( Controller )
module.exports = {
getUser: function (req, res) {
console.log("sdfdsfdsfsd");
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify({"msg": "welcome user"}));
}
}
最佳答案
在您的 routes.js
文件中,您正在导出两个内容。尝试只导出路由器
var express = require('express')
, router = express.Router()
var usersController = require('./controllers/users');
router.get('/users', usersController.getUser);
module.exports = router;
关于javascript - Node + Express JS API 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41849144/