Nodejs,bodyParser.req,res,适用于登录和注册,但不适用于概要文件更新.req变量undiend



我正在使用SnowSQL作为数据库,并制作一个用户配置文件功能。当我输入我的用户信息用户名、密码、名字、姓氏时,所有信息都返回为未定义。

我的app.js代码:

var snowflake = require('snowflake-sdk');
const express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
//const methodOverride = require('method-override');
const session = require('express-session');
const app = express();
let bodyParser=require("body-parser");
var connection = snowflake.createConnection( {
account: '***********',  
username: '***********',
password: '***********', //creds commented out for security reasons. 
database: '***********'
}
);
connection.connect( 
function(err, conn) {
if (err) {
console.error('Unable to connect: ' + err.message);
} 
else {
console.log('Successfully connected to Snowflake test account.');
// Optional: store the connection ID.
connection_ID = conn.getId();
}
}
);
//global.db = connection;
// all environments
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.static('public'))
app.set('port', process.env.PORT || 8080);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
// app.use(express.static(path.join(__dirname, 'public')));
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: { maxAge: 60000 }
}))
// development only
app.get('/', routes.index);//call for main index page
app.get('/signup', user.signup);//call for signup page
app.post('/signup', user.signup);//call for signup post 
app.get('/reset', user.reset);//call for signup page
app.post('/reset', user.reset);//call for signup page
app.post('/forgot', user.forgot);//call for signup post 
app.get('/forgot', user.forgot);//call for signup post 
app.get('/login', routes.index);//call for login page
app.post('/login', user.login);//call for login post
app.get('/home/dashboard', user.dashboard);//call for dashboard page after login
app.get('/home/logout', user.logout);//call for logout
app.get('/home/profile',user.profile);//to render users profile
app.post('/home/profile',user.editprofile);//to render users profile
app.get('/verification/',user.verify);
//Middleware
app.listen(8080)

User.js编辑配置文件功能:

exports.editprofile = function (req, res) {
var userId = req.session.userId;
if (req.method == "POST") {  //using res to initialize my accounts table variables. 
// var post = req.session;
var userId = '2';
var post = req.body;
var name = post.user_name;
var pass = post.password;
var fname = post.first_name;
var lname = post.last_name;
var email = post.email;
console.log(name, pass, fname, lname); //Coming out as undefined
if (userId == null) {
res.redirect("/login");
return;
}
connection.execute({
sqlText: "UPDATE TEST.PUBLIC.ACCOUNTS SET FIRST_NAME =" + "'" +fname+ "'" + ", LAST_NAME = " 
+ "'" + lname+ "'" + ", USER_NAME = " + "'" + name + "'" + ", PASSWORD = " + "'" + pass + "'" + 
" WHERE EMAIL = 'fakemeail@gmail.com'",
// UPDATE TEST.PUBLIC.ACCOUNTS SET FIRST_NAME = 'John', LAST_NAME = 'Smith', USER_NAME = 
'Jsmith365', PASSWORD = '3Hotdogs' WHERE EMAIL = 'fakemeail@gmail.com';
complete: function (err, stmt, row) {
if (err) {
console.error('Failed to execute statement due to the following error: ' + err.message);
}
else {
console.log('Sucessfully updated profile');
res.redirect('/home/dashboard');
}
}
});
} else {
res.redirect('/home/dashboard');
}
};

我的数据库连接工作正常。这是有效的,因为当我转到snowflake数据库并在前端显示undefined时,值会变为undefined。身体解析器似乎不知道我说的是什么值,所以它是未定义的。最重要的是,初始化我的变量的exacpt代码适用于在前端和数据库上登录和注册。我觉得我错过了什么。它在我的app.js中吗?任何帮助都会很棒!

检查请求中是否包含content-type标头示例:

Json数据的
  • 包括Content-Type: application/json标头
  • 对于x-www-form-urlencoded包含Content-Type: application/x-www-form-urlencoded标头

相关内容

最新更新