Node.js 使用Express和Mongoose在dom中显示Json时出现问题
在Max Schwarzmüller的node js教程之后,我目前正在进行我的第一个node js express项目,这是node express mongoose,ejs。 这是我的第一个方法,所以这里有很多糟糕的代码 我不能在视图中呈现json对象,但我可以控制台记录它。 我使用的是一个“位置”模型,它是一个国家的集合。我使用一个位置控制器来检索我在管理控制器上调用的数据,在这个控制器中,我只在渲染视图时传递数据 我不确定这种方法是否正确,我认为它是不正确的,所以如果有人给我一个关于这个发行版的建议,我将不胜感激 管理员控制器:Node.js 使用Express和Mongoose在dom中显示Json时出现问题,node.js,json,express,mongoose,model-view-controller,Node.js,Json,Express,Mongoose,Model View Controller,在Max Schwarzmüller的node js教程之后,我目前正在进行我的第一个node js express项目,这是node express mongoose,ejs。 这是我的第一个方法,所以这里有很多糟糕的代码 我不能在视图中呈现json对象,但我可以控制台记录它。 我使用的是一个“位置”模型,它是一个国家的集合。我使用一个位置控制器来检索我在管理控制器上调用的数据,在这个控制器中,我只在渲染视图时传递数据 我不确定这种方法是否正确,我认为它是不正确的,所以如果有人给我一个关于这个
const locationsController = require('../controllers/locations');
exports.getAddConsejera = (req, res, next) => {
let message = req.flash('error');
if (message.length < 1) {
message = null
}
const countries = locationsController.getCountries();
res.render('admin/edit-consejera', {
pageTitle: 'Agregar Consejera',
path: '/admin/add-consejera',
editing: false,
errorMessage: message,
countries: countries
});
const Location = require('../models/Location');
exports.getCountries = (req, res, next) => {
Location.find()
.then(countries => {
console.log(countries)
res.json(countries)
})
.catch(err => console.log(err))
};
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const locationSchema = new Schema({
name: {
type: String,
required: true
},
});
module.exports = mongoose.model('Location', locationSchema);
<div class="col-lg-6 col-sm-12 col-md-12">
<label for="pais" class="form-label">Pais</label>
<select class="form-select" id="pais" name="pais" required>
<% for(i=0; countries.length> i; i++) { %>
<option>
<% countries._id %>
</option>
<% }%>
</select>
</div>
位置模型:
const locationsController = require('../controllers/locations');
exports.getAddConsejera = (req, res, next) => {
let message = req.flash('error');
if (message.length < 1) {
message = null
}
const countries = locationsController.getCountries();
res.render('admin/edit-consejera', {
pageTitle: 'Agregar Consejera',
path: '/admin/add-consejera',
editing: false,
errorMessage: message,
countries: countries
});
const Location = require('../models/Location');
exports.getCountries = (req, res, next) => {
Location.find()
.then(countries => {
console.log(countries)
res.json(countries)
})
.catch(err => console.log(err))
};
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const locationSchema = new Schema({
name: {
type: String,
required: true
},
});
module.exports = mongoose.model('Location', locationSchema);
<div class="col-lg-6 col-sm-12 col-md-12">
<label for="pais" class="form-label">Pais</label>
<select class="form-select" id="pais" name="pais" required>
<% for(i=0; countries.length> i; i++) { %>
<option>
<% countries._id %>
</option>
<% }%>
</select>
</div>
错误
Cannot read property 'length' of undefined
查看:
const locationsController = require('../controllers/locations');
exports.getAddConsejera = (req, res, next) => {
let message = req.flash('error');
if (message.length < 1) {
message = null
}
const countries = locationsController.getCountries();
res.render('admin/edit-consejera', {
pageTitle: 'Agregar Consejera',
path: '/admin/add-consejera',
editing: false,
errorMessage: message,
countries: countries
});
const Location = require('../models/Location');
exports.getCountries = (req, res, next) => {
Location.find()
.then(countries => {
console.log(countries)
res.json(countries)
})
.catch(err => console.log(err))
};
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const locationSchema = new Schema({
name: {
type: String,
required: true
},
});
module.exports = mongoose.model('Location', locationSchema);
<div class="col-lg-6 col-sm-12 col-md-12">
<label for="pais" class="form-label">Pais</label>
<select class="form-select" id="pais" name="pais" required>
<% for(i=0; countries.length> i; i++) { %>
<option>
<% countries._id %>
</option>
<% }%>
</select>
</div>
派斯
我i++{%>
我相信原因与我的位置控制器有关。当我检索json时,我无法操作它,它会正确迭代,但在我的dom中不会出现。只有空格
我期待任何答案,非常感谢