Javascript Express app.get中间件不工作`语法错误:输入意外结束`
我正在关注Youtube上Express的教程。不幸的是,我遇到了中间件的问题,我非常困惑 在我的主文件中,我有以下代码:Javascript Express app.get中间件不工作`语法错误:输入意外结束`,javascript,node.js,express,Javascript,Node.js,Express,我正在关注Youtube上Express的教程。不幸的是,我遇到了中间件的问题,我非常困惑 在我的主文件中,我有以下代码: const express = require('express'); const path = require('path'); const app = express(); const logger = require('./middleware/logger'); app.use('/api/members', require('./routes/api/membe
const express = require('express');
const path = require('path');
const app = express();
const logger = require('./middleware/logger');
app.use('/api/members', require('./routes/api/members'));
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`Server started on port ${PORT}`));
而members.js文件是:
const express = require('express');
const router = express.Router();
const members = require('../../Members')
//Gets All Members
router.get('/', (req, res) => res.json(members));
//Get Single Memberss
router.get('/:id', (req, res) => {
const found = members.some(member => member.id === parseInt(req.params.id));
if(found){
res.json(members.filter(member => member.id === parseInt(req.params.id)));
} else {
res.status(400).json({msg: `No member with the id of ${req.params.id}`});
}
module.exports = router;
此代码导致nodemon崩溃,并给出以下错误:
SyntaxError: Unexpected end of input
at wrapSafe (internal/modules/cjs/loader.js:1072:16)
at Module._compile (internal/modules/cjs/loader.js:1122:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178
:10)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)
at Module.require (internal/modules/cjs/loader.js:1044:19)
at require (internal/modules/cjs/helpers.js:77:18)
at Object.<anonymous> (/home/gavin/Documents/ExpressCrashCourse/index
.js:12:25)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178
:10)
SyntaxError:输入意外结束
在wrapSafe(内部/modules/cjs/loader.js:1072:16)
at模块编译(内部/modules/cjs/loader.js:1122:27)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:1178
:10)
at Module.load(内部/modules/cjs/loader.js:1002:32)
at Function.Module._load(内部/modules/cjs/loader.js:901:14)
at Module.require(内部/modules/cjs/loader.js:1044:19)
根据需要(内部/modules/cjs/helpers.js:77:18)
反对。(/home/gavin/Documents/ExpressCrashCourse/index
.js:12:25)
at模块编译(内部/modules/cjs/loader.js:1158:30)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:1178
:10)
我的解释是,它在app.use('/api/members',require('/routes/api/members'))中被破坏但是我真的不明白为什么。同样在应用程序中。使用上面的
函数,我真的不明白第二个参数在做什么。我认为它将是express中路由器对象的一个实例,但我不明白这是如何替代通常的函数(req,res){}
那将取而代之。不管怎么说,我已经看了好几遍了,它看起来像是我从教程中复制的代码,就像它写的一样,所以我真的很困惑为什么这不起作用。非常感谢您的帮助。看起来您缺少一个右括号}
和圆括号)
const express=require('express');
const router=express.router();
const members=require(“../../members”)
//获取所有成员
get('/',(req,res)=>res.json(members));
//获得单一会员
路由器.get('/:id',(req,res)=>{
const found=members.some(member=>member.id===parseInt(req.params.id));
如果(找到){
res.json(members.filter(member=>member.id===parseInt(req.params.id));
}否则{
json({msg:`没有id为${req.params.id}`}的成员);
}
}); // 谢谢结果总是这样简单。
const express = require('express');
const router = express.Router();
const members = require('../../Members')
//Gets All Members
router.get('/', (req, res) => res.json(members));
//Get Single Memberss
router.get('/:id', (req, res) => {
const found = members.some(member => member.id === parseInt(req.params.id));
if (found) {
res.json(members.filter(member => member.id === parseInt(req.params.id)));
} else {
res.status(400).json({msg: `No member with the id of ${req.params.id}`});
}
}); // <- Close your callback
module.exports = router;