[英]export default routes; SyntaxError in NodeJS
const routes = (app) => {
app.route('/contact')
.get((req, res, next) => {
// middleware
console.log(`Request from: ${req.originalUrl}`)
console.log(`Request type: ${req.method}`)
next();
}, (req, res, next) => {
res.send('GET request successful!!!!');
})
.post((req, res) =>
res.send('POST request successful!!!!'));
app.route('/contact/:contactId')
.put((req, res) =>
res.send('PUT request successful!!!!'))
.delete((req, res) =>
res.send('DELETE request successful!!!!'));
}
export default routes;
执行时产生此错误:
export default routes;
^^^^^^
SyntaxError: Unexpected token export
我实际上是在尝试在培训视频中跟进,所以我对此有点陌生。 据我了解,他正在尝试使用 ES6,而且我知道一些命令,例如 import,在 node ver 9 中本身是不可用的。 这可能是其中之一吗? 有什么选择吗?
很可能您的 Node 项目没有设置为使用 ES6 模块加载。
Node 使用一种较旧的模块加载标准,称为 CommonJS 标准。 为了让您的项目以您拥有的方式使用 ES6 模块加载,您需要使用 babel 和类似 webpack 的工具。
如果你搜索我的名字和教程,我会在不到 3 分钟的时间内展示如何设置它。 在这个例子中,它还建立了一个反应项目,除此之外你只会对其他一切感兴趣。
尝试使用module.exports.routes;
你想使用 ES6 模块语法。 这意味着应该支持 ES6 模块语法。
您至少可以通过两种方式继续:
您需要在根文件夹中创建一个与 server.js 或 index.js 相同的 .babelrc 文件,并像这样添加和对象:
{
"presets": [
"env",
"stage-0"
]
}
这将告诉节点使用预设的 env 和 stage-o。 我假设您下载了 babel 插件。
以防万一记住用这个配置 server.js(在我的例子中):
"scripts": {
"start": "nodemon ./server.js --exec babel-node -e js"
},
使用 ES6 模块语法。
节点版本 8.xx 不支持导入。 使用最新版本的node 9.xx,错误就会消失。 此外,您可以使用 babel 来转译您的代码。
我从侧面遇到了相同的问题,我意识到我已经使用require
代替了import
ES6语法来导入依赖项。 我刚刚使用module.exports=router
解决了
注意:如果您使用ES6导入,那么您在问题中编写的代码将可以正常使用。 在这里您可以找到我的代码示例。
const express = require('express');
let router = express.Router();
router.post('/', (req, res) => {
res.status(201).json({
success: true
});
});
// make the export
module.exports = router;
您需要在文件中创建与 index.js 相同的文件并添加
module.exports = router;
在 index.js 中添加这个
const postRoutes=require('./routes/posts')
app.use('/post',postRoutes);
您必须在 package.json 中的“脚本”之前添加“类型”:“模块”并更改每个 // const express=require('express'); to //从'express'导入快递
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.