【发布时间】:2018-07-31 22:10:18
【问题描述】:
在URL中传递参数后,我只想在用户输入带有参数的URL时显示来自Mongodb的数据。
例如,如果 URL 是“http://www.example.com/product/1”,则应检索属于 id 值“1”的数据并显示在前端。
我已经编写了基于 id 显示数据的代码,但它没有显示结果,因为它有一些我无法找出的错误。
const express = require('express');
const app = express();
app.use(express.static('public'));
const ejs = require('ejs');
const bodyParser = require('body-parser')
app.set('view engine', 'ejs');
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017";
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.get('/product/:id', (req, res) => {
var data = [
{
id: 1,
},
{
id: 2,
}
]
data.forEach((product) => {
if (product.id == req.params.id) {
MongoClient.connect(url, { useNewUrlParser: true }, (err, db) => {
if (err) throw err;
var dbo = db.db('product')
var cursor = dbo.collection('details').find();
cursor.forEach((doc, err) => {
if (err) throw err;
data.push('doc');
}, () => {
db.close();
});
});
return true;
}
})
res.render('productdetails',{title:"Product Details", product: data});
});
而html部分是
<h3><%= data.producttitle %></h3>
【问题讨论】:
标签: node.js mongodb express parameters