node.js - 将函数数据添加到我的模型 - Node/Express
问题描述
我有一个包含输入字段“firstName”、“lastName”和“assetTag”的表单。我想提交该表单并发布所有数据以及一个名为“modelType”的附加字段。modelType 字段中的数据来自函数调用si.system()但我不确定如何将其传递给模型,因为它是一个承诺。
如何将数据从我的 console.log(data.model) 传递到我的 formData?
app.js 发布请求:
app.post('/', (req, res) => {
si.system()
.then(data => console.log(data.model))
.catch(error => console.error(error))
const formData = {
firstName: req.body.firstName,
lastName: req.body.lastName,
assetTag: parseInt(req.body.assetTag)
}
const system = new System(formData);
system.save()
.then(result => {
console.log(result);
})
.catch(err => {
console.log(err);
});
});
模型:
const mongoose = require('mongoose');
var SystemSchema = new mongoose.Schema({
firstName: {
type: String,
required: true
},
lastName: {
type: String,
required: true
},
assetTag: {
type: Number,
required: true
},
modelType: {
type: String,
required: true
}
});
module.exports = mongoose.model('System', SystemSchema);
解决方案
如果您正在谈论从承诺中获得该价值,则需要研究async / await。
这是代码
app.post('/', async (req, res) => {
let data = await si.system();
const formData = {
firstName: req.body.firstName,
lastName: req.body.lastName,
modelType: data.model,
assetTag: parseInt(req.body.assetTag)
}
const system = new System(formData);
system.save()
.then(result => {
console.log(result);
})
.catch(err => {
console.log(err);
});
});
推荐阅读
- android - 一旦我将它放在 GridView 中,我正在努力控制我的 CardView 项目中的 textView 的重力
- javascript - 具有两个一致单词的多行打字机效果
- git - Git push 说“一切都是最新的”,但事实并非如此
- python - 如何为我的消费者获取所有分区的当前偏移量?
- node.js - 如何使用请求将文件从节点发送到 Amazon S3?
- azure-ad-b2c - Azure b2c - 密码重置策略、更新配置文件
- strapi - 如何使用 HTTP 请求更改 Strapi 条目?
- github - 多分支管道。无法配置特定的分支配置
- node.js - 我的 nodejs 电子打包器说警告错误
- javascript - 如何将页面部分锚定到滚动显示的导航栏底部?