簡體   English   中英

TypeError:無法讀取未定義 Express 的屬性“使用”

[英]TypeError: Cannot read property 'use' of undefined Express

當我使用“app.use”命令時,我的快速服務器遇到了一些問題

在我的 task-routes.js 文件中,我有以下代碼

import express from 'express';
const router = express.Router();


router.post('/task',(req, res) => {
    res.send('post.task - create a task');
});
router.get('/task',(req, res) => {
    res.send('get.task - get all tasks')
});
router.get('/task/:id',(req, res) => {
    res.send('get.task/:id - get task by id')
});
router.put('/task',(req, res) => {
    res.send('put.task - update a task')
});
router.delete('/task',(req, res) => {
    res.send('delete.task - delete a task')
});

export default router;

在我的 routes.js 文件中,我有這個

import taskRoutes from './api/task/tasks-routes';

export function registerRoutes(app) {
app.use('/api',taskRoutes);

}

索引.js

import express from 'express';
const app = express()
import {registerRoutes} from './routes';
const port = 3000
registerRoutes();
app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`MEVN app listening at http://localhost:${port}`))

這是我不斷收到的錯誤

/Users/musabhamid/Desktop/mevn-stack copy/prod-server/routes.js:15
  app.use('/api', _tasksRoutes2.default);
      ^

TypeError: Cannot read property 'use' of undefined
    at registerRoutes (/Users/musabhamid/Desktop/mevn-stack copy/prod-server/routes.js:15:7)
    at Object.<anonymous> (/Users/musabhamid/Desktop/mevn-stack copy/prod-server/index.js:14:28)

您缺少將 app 作為 Index.js 的參數傳遞

import express from 'express';
const app = express()
import {registerRoutes} from './routes';
const port = 3000
registerRoutes(app); // <- Here
app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`MEVN app listening at http://localhost:${port}`))
 app.use('/api',taskRoutes);

所以你打電話給app.use

什么是app

 export function registerRoutes(app) {

這是您傳遞給registerRoutes的第一個參數。

那是什么?

 registerRoutes();

沒有一個。 你沒有通過它的論點。


當您調用 function 時,您必須將 express object 作為參數傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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