Node.js 使用Express和Mongoose在dom中显示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对象,但我可以控制台记录它。 我使用的是一个“位置”模型,它是一个国家的集合。我使用一个位置控制器来检索我在管理控制器上调用的数据,在这个控制器中,我只在渲染视图时传递数据 我不确定这种方法是否正确,我认为它是不正确的,所以如果有人给我一个关于这个

在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中不会出现。只有空格

我期待任何答案,非常感谢