Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点+;expressjsapi不工作_Javascript_Node.js_Rest_Express - Fatal编程技术网

Javascript 节点+;expressjsapi不工作

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

我是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.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
by
router.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;