[英]Express error - TypeError: express.Router is not a function
[英]TypeError: express.Router is not a function in Node.js
當我嘗試通過 npm start 運行我的應用程序時,出現錯誤:
export const router = express.Router();
^
TypeError: express.Router is not a function
at file:///C:/Users/hassa/notes/routes/index.mjs:4:31
我的 index.mjs 文件的代碼是:
import * as express from "express";
import { NotesStore as notes } from "../app.mjs";
export const router = express.Router();
/* GET home page. */
router.get("/", async (req, res, next) => {
try {
const keylist = await notes.keylist();
// console.log(`keylist ${util.inspect(keylist)}`);
const keyPromises = keylist.map((key) => {
return notes.read(key);
});
const notelist = await Promise.all(keyPromises);
// console.log(util.inspect(notelist));
res.render("index", { title: "Notes", notelist: notelist });
} catch (err) {
next(err);
}
});
我已經在 stackoverflow 上看到了類似主題的其他問題,但我沒有得到任何解決方案。 如果有人知道如何解決它,請告訴我。 謝謝。
import * as express from "express";
import { NotesStore as notes } from "../app.mjs";
const router = express.Router();
/* GET home page. */
router.get("/", async (req, res, next) => {
try {
const keylist = await notes.keylist();
// console.log(`keylist ${util.inspect(keylist)}`);
const keyPromises = keylist.map((key) => {
return notes.read(key);
});
const notelist = await Promise.all(keyPromises);
// console.log(util.inspect(notelist));
res.render("index", { title: "Notes", notelist: notelist });
} catch (err) {
next(err);
}
});
export router;
像這樣嘗試。
我認為問題在於您將 express 導入文件的方式。 要導入 express,您需要默認導入而不是命名導入。 在這種情況下,不是import * as express from 'express'
,而是將其更改為import express from 'express'
或import {default as express} from 'express'
,你應該會很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.