我决定使用新的ES6导出,而不是在NodeJS/Express项目中使用模块导出。我正在阅读MDN文件,它说出口是这样使用的:
export function draw(ctx, length, x, y, color) {
ctx.fillStyle = color;
ctx.fillRect(x, y, length, length);
在这里,我试图在这个app.get
函数中以相同的方式使用它,但我的编辑器抛出了一个语法错误。我应该使用其他格式吗?-我本质上是在尝试将路由容器分离成单独的文件以进行组织,然后在最后将它们导入到我的主app.js文件中,以便使用express进行路由声明。
export app.post('/exampleroute', async (req, res) => {
...
});
// Error: Declaration or Statement expected.
您必须导出值(默认值或命名变量(。
app.post()
的返回值没有用处。
导出函数:
export const myRouteHandler = async (req, res) => {
...
};
然后:
import { myRouteHandler } from "./myModule";
app.post('/exampleroute', myRouteHandler)
或者,导出路由器:
import express from 'express';
export const router = express.Router();
router.post('/exampleroute', async (req, res) => {
...
});
然后导入并使用:
import { router } from "./myModule";
app.use("/", router);