node.js - 将带有表单的文件从 nuxt 发送到节点服务器(nodemailer)
问题描述
我在 nuxt 有这样的表格:
<v-form v-if="displayForm" ref="form" v-model="valid" enctype="multipart/form-data" lazy-validation>
<v-flex xs12 md6 sm12>
<v-text-field
v-model="linkOriginal"
label="Link to the original work (not required)"
/>
</v-flex>
<v-flex xs12 md6 sm12>
<span>Pic from original work (required)</span>
<input id="file" ref="file" type="file" @change="handleFileUpload()">
</v-flex>
</v-form>
我的脚本是这样的:
<script>
export default {
data() {
return {
file: "",
linkOriginal: "",
};
},
methods: {
handleFileUpload() {
console.log(this.$refs.file.files[0]);
this.file = this.$refs.file.files[0];
},
submit() {
if (this.$refs.form.validate()) {
let formData = new FormData();
formData.append("file", this.file);
formData.append("notifDate", this.notifDate)
this.$axios
.post(
"http://mynodeserver.com:3000/infringement",
formData,
{
headers: {
"Access-Control-Allow-Origin": true
"Content-Type": "multipart/form-data"
}
}
)
.then(response => {
this.displayForm = false;
this.displayError = false;
this.displaySuccess = true;
})
.catch(e => {
this.displayForm = false;
this.displaySuccess = false;
this.displayError = true;
});
} else {
console.log("u need to complete the required elements");
}
},
clear() {
this.$refs.form.reset();
}
}
};
</script>
在我的节点服务器端部分,当我控制台日志 req.body.file 或 req.body.notifDate 它返回 undefined 所以我无法将它附加到我想用 nodemailer 发送的电子邮件中。我在这里想念什么?
解决方案
请求将axios.post()
对象作为第二个参数,axios.post('/api/submit', {data: formData})
推荐阅读
- c# - C#中的多态,如何在方法中将父对象变成子对象?
- python - SQLite:使用 Python 进行参数和字段名称替换
- python - 在 Python 的 for 循环中使用 range(len(x)) 时添加索引有什么影响?例如范围(len(x [0])
- typescript - VSCode(Vetur) 无法识别组件中的自定义 Vue 属性
- c# - 更改 ProgressDialog 的动画样式
- python - Pandas:索引和列中的分组名称
- typo3 - sr_freecap:viewhelper 调用 eIDSR 而不是 eID - 未显示图像
- python - 根据路由逻辑将请求传递给不同的类
- javascript - 在 React 中使用 React Router传递数据但未定义
- javascript - mongodb数据的控制台日志与node中的终端和DevTools不同