Express,猫鼬将MongoDB值显示为div

时间:2020-05-15 22:04:35

标签: javascript node.js mongodb mongoose

仅从mongoDB和mongoose开始,我有一个名为“ Twitter”的数据库,其中包含一个名为userPost的集合。 我的server.js具有与数据库和服务器设置的连接。路由器文件夹中的pages.js文件将路由每个页面。

我希望将数据库数据显示在名为“ Test”的div中。

router.get('/', function(req, res) {
res.render('index.ejs', {
 });
}); 

这是我的首页路由代码,在{之后,我应该输入类似id_of_div:database_value的内容。 但是我在执行此操作时遇到了一些问题,因此将不胜感激。谢谢!

我创建了一个模型架构:

let mongoose = require('mongoose');
var Schema = mongoose.Schema;

var postSchema = new Schema({
    username: { 
        type: String,
        required: true 
    },
    content: { 
        type: String,
        required: true 
    },
});

let userPost = module.exports = mongoose.model('userPost', postSchema);

但是我不知道如何进行。

<div id="posts">
</div>

这是index.ejs文件中表单下的div。

1 个答案:

答案 0 :(得分:1)

您需要做的就是将模块架构导入路由器模块中并进行渲染。 您的路线和应用模块文件如下所示

***userRoutes.js***

var express = require('express');
var userPostModel = require('./userPostModel');

const userRouter = express.Router();

function router() {
    userRouter.route('/').get((req, res, next) => {
        userPostModel.find({})
            .then(function (userDetails) {
                res.render('index', {
                    userDetails
                });
            }, function (err) {
                next(err);
            });
        next();
    }); 

    return userRouter;
}

module.exports = router;

以下是示例app.js文件

***app.js***

var express = require('express');
var userRoutes = require('./userRoutes');
const bodyParser = require('body-parser');

const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.use('/user', userRoutes());
app.set('views', './src/views');
app.set('view engine', 'ejs');

app.listen(3000, function() {
    console.log("Listening to port");
})

以下是您可以在html文件中使用它的方式

<html>
    <head>
    </head>
    <body>
        <div>
            <h1><%userDetails.username%></h1>
        </div>
    </body>
</html>