首页 > 解决方案 > 编译代码中的错误未在使用 mongodb 的 nodejs 中显示任何特定错误

问题描述

我正在开发一个程序来执行 CRUD 程序,但我收到了一个未知错误 -

at Object.<anonymous> (C:\Program Files\nodejs\practiceofmongonode.js:13:9)
at Module._compile (internal/modules/cjs/loader.js:956:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
at internal/main/run_main_module.js:17:11

这是我定义路由的nodejs文件的代码

var express               =    require("express"),
    app                   =    express(),
    bodyParser            =    require("body-parser"),
    mongoose              =    require("mongoose");

    mongoose.connect("mongodb://localhost:27017/practiceofmn");
    app.use(bodyParser.urlencoded({extended:true}));

    var books = new mongoose.Schema({
        title:String,
        author:String
    });
    app.use("view engine","ejs");
    app.get("/",function(req,res){
        res.render("book");
    });

    app.post("/addbook",function(req,res){
var book = mongoose.model("book",books);
var title2 = req.body.title1;
var author2 = req.body.author1;

book.create({title:title2,author:author2},function(err,book){

                        if(err){
                            console.log(err);
                            }
                        else{
                            res.send(book);
                        }
});
    });

    app.listen(3000,function(){
    console.log("i am serving you");
        });

这是 book.ejs 的代码在这个文件中我从用户那里得到输入

<h1>hello here you can create new post</h1>
<form action="/addbook" method="POST">
<input type="text" name = "title1" placeholder="title here" > 

<input type="text" name = "author1" placeholder="author name here" >

<input type = "submit">
</form>

标签: javascriptnode.jsmongodbmongoose

解决方案


您不应该app.set用于设置视图引擎app.use

http://expressjs.com/en/advanced/developing-template-engines.html#developing-template-engines-for-express

响应有误。Router.use() requires a middleware function but got a ' + gettype(fn))


推荐阅读