gpt4 book ai didi

javascript - 在 Node.js 应用程序中使用 View 模型

转载 作者:太空宇宙 更新时间:2023-11-04 02:21:33 25 4
gpt4 key购买 nike

我正在学习 Node.js。目前我使用的是ES6、Node、Express。我担心我的 View 模型的范围。此时,我有以下内容:

server.js

// setup the routing
var routes = require('./routes');
app.use('/', routes.home);

路线正在正确注册。我在 $projectDir/routes/home.js 中定义了我的路线。该文件如下所示:

home.js

var router = require('express').Router();

/* GET the main page. */
router.get('/', function(req, res) {
var viewModel = require('../viewModels/home/index');
res.render('home/index', viewModel);
});

/* GET the contact page. */
router.get('/contact', function(req, res) {
var viewModel = require('../viewModels/home/contact');
res.render('home/contact', viewModel);
});

/* POST contact information */
router.post('/contact', function(req, res) {
// ?
});

这种方法效果很好。我已在 $projectDir/viewModels/home/index.js 和 $projectDir/viewModels/home/contact.js 中定义了 View 模型。

index.js

var viewModel = {
title: '',

constructor() {
this.title = 'Welcome';
}
};
module.exports = viewModel;

contact.js

var viewModel = {
title: '',
emailAddress: '',

constructor() {
this.title = 'Contact Us';
}
};
module.exports = viewModel;

我对 View 模型的范围感到担忧。首先,我在两个单独的文件中使用 module.exports = viewModel; 。这个可以吗?或者我应该将变量命名为 indexViewModelcontactViewModel 之类的名称吗?另外,当发生 POST 时,如何使用用户在表单中输入的值填充 View 模型?例如他们的电子邮件地址?

最佳答案

就 Node 而言,您可以在多个文件中使用相同的名称viewModel。但为了您自己的理智和思路清晰,我建议您按照您的建议使用不同的名称。当您提出问题“如何填充 View 模型?”时,我必须返回并阅读代码几秒钟才能了解您指的是哪个 View 模型。当您的程序从 40 行增长到 4000 行时,如果模型都具有相同的名称,那么保持模型的连续性将变得非常困难。

对于POST数据,您可以使用req.body属性访问POST数据。这个问题已经在这里得到解答:How do you extract POST data in Node.js?

关于javascript - 在 Node.js 应用程序中使用 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33129958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com