[英]Creating route got error of Router.use() requires middleware function
[英]router.use() requires middleware function error
我正在學習node.js,在線上了本教程之后,我決定進行練習。 我正在嘗試設置服務器,但收到錯誤消息:
throw new TypeError('Router.use() requires middleware function but got a ' + gettype(fn));
^
TypeError: Router.use() requires middleware function but got a undefined
at Function.use (/Users/user/Desktop/Movie_Review_API/node_modules/express/lib/router/index.js:458:13)
我認為路線有問題,但不確定。 這就是我所擁有的
中間件:
import { Router } from "express";
export default({config, db}) => {
let api = Router();
return api;
}
路線:
import express from "express";
import config from "../config";
import initializeDb from "../db";
import middleware from "../middleware";
import movie from "../controller/movie";
let router = express();
// connect to db
initializeDb(db => {
router.use(middleware({ config, db }));
// api routes
router.use("/movie", movie({config, db}));
});
export default router;
服務器
import http from "http";
import express from "express";
import bodyParser from "body-parser";
import mongoose from "mongoose";
import config from "./config";
import routes from "./routes";
let app = express();
app.server = http.createServer(app);
// middleware
app.use(bodyParser.json({
limit : config.bodyLimit
}));
// passport config
// api routes v1
app.use('/v1', routes);
app.server.listen(config.port);
console.log(`Started on port ${app.server.address().port}`);
export default app;
調節器
import mongoose from "mongoose";
import { Router } from "express";
import movie from "../model/movie";
import bodyParser from "body-parser";
export default({config, db}) => {
let api = Router();
api.post("/add", (req, res) => {
let newMovie = new Movie();
newMovie.name = req.body.name;
newMovie.rating = req.body.rating;
newMovie.releaseYear = req.body.releaseYear;
newMovie.description = req.body.description;
newMovie.save(err => {
if(err) {
res.send(err);
}
res.json({message: "Movie saved successfully"});
});
});
代表不足,但我建議檢查一下:
app.server.listen(config.port);
//can just be
app.listen(config.port);
是的,通常,只檢查路線,希望能奏效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.