gpt4 book ai didi

node.js - Node JS 和 EJS POST

转载 作者:太空宇宙 更新时间:2023-11-03 22:50:23 28 4
gpt4 key购买 nike

我正在使用 NodeJS/Express 和 EJS 创建 API 路由的表单。当我尝试 POST 请求并调用 req.body.password & req.body.confirm 时,我得到“未定义”。

index.js

import http from 'http';
import express from 'express';
import bodyParser from 'body-parser';
import mongoose from 'mongoose';
import passport from 'passport';
const LocalStrategy = require('passport-local').Strategy;
var flash = require('connect-flash');

import config from './config';
import routes from './routes';

let app = express();
app.server = http.createServer(app);

//middleware
app.use(bodyParser.json({
limit: config.bodyLimit
}));

//EJS VIEWS CODE
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(flash());

我的 Controller 的一部分,带有导入

import mongoose from 'mongoose';
import { Router } from 'express';
import Account from '../model/account';
import bodyParser from 'body-parser';
import passport from 'passport';
import config from '../config';
import express from 'express'
var async = require("async");
var nodemailer = require("nodemailer");
var crypto = require("crypto");

if(req.body.password === req.body.confirm) {
account.setPassword(req.body.password, function(err) {

EJS

<div class="row">
<div class="col-md-12">
<form action="http://localhost:3005/v1/account/reset/<%= token %>" method="POST">
<legend>Reset Password</legend>
<div class="form-group">
<input type="password" name="password" value="" placeholder="New password" id="password" autofocus="autofocus" class="form-control"/>
</div>
<div class="form-group">
<input type="password" name="confirm" value="" placeholder="Confirm password" id="confirm" class="form-control"/>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Update Password</button>
</div>
</form>
</div>
</div>

编辑:使用导入更新了我的 Controller

最佳答案

查看更新的代码片段,您似乎正在使用 bodyParser.json ,它只会解析 json 有效负载,而不解析 form data作为正文发布。

要接受表单提交,您还需要执行以下操作:

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

它通过 postman 为你工作,因为我假设使用 postman 时你正在提交 json。

关于node.js - Node JS 和 EJS POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48893686/

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