簡體   English   中英

類型錯誤:express.Router 不是 Node.js 中的函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM