Javascript 节点+;expressjsapi不工作
我是node.js的初学者,但我更努力地在node+express js中设置一个结构。我开始使用前端和单独的API结构。我为API和前端都放了一个app.js。但我的API不起作用。当我调用时,它给出了无法获取/api/users的错误。请帮忙Javascript 节点+;expressjsapi不工作,javascript,node.js,rest,express,Javascript,Node.js,Rest,Express,我是node.js的初学者,但我更努力地在node+express js中设置一个结构。我开始使用前端和单独的API结构。我为API和前端都放了一个app.js。但我的API不起作用。当我调用时,它给出了无法获取/api/users的错误。请帮忙 api -controllers -helpers -middlewares -models -routes.js app.js controllers helpers middlewares models node_modules package.j
api
-controllers
-helpers
-middlewares
-models
-routes.js
app.js
controllers
helpers
middlewares
models
node_modules
package.json
public
views
app.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)
})
routes.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;
js(控制器)
在您的
routes.js
文件中,您正在导出两件事。尝试只导出路由器
var express = require('express')
, router = express.Router()
var usersController = require('./controllers/users');
router.get('/users', usersController.getUser);
module.exports = router;
谢谢你,伙计。根据你的说法,我进口了两件东西,你能简单地告诉我哪些东西我进口错了吗。您正在导出这两个
module.exports=路由器
和module.exports=函数(应用程序){…}
。尝试按照我的回答中的详细说明操作:仅导出路由器并替换app.get
byrouter.get
var express=require('express'),router=express.router()var userscocontroller=require('./控制器/用户');module.exports=函数(app){router.get('/users',userscocontroller.getUser);};它也不工作,为什么使用我的答案上面的代码请<代码>var express=require('express'),router=express.router()var users controller=require('./控制器/用户');get('/users',userscocontroller.getUser);module.exports=路由器代码>您的代码运行良好。我只是在探索我的知识。Thanksher是一个关于如何在nodejs中设置express的示例,您可能会发现:
var express = require('express')
, router = express.Router()
var usersController = require('./controllers/users');
router.get('/users', usersController.getUser);
module.exports = router;