Javascript Nodejs,bodyParser。req、res用于登录和注册,但不用于配置文件更新。req变量未定义

Javascript Nodejs,bodyParser。req、res用于登录和注册,但不用于配置文件更新。req变量未定义,javascript,node.js,routes,snowflake-cloud-data-platform,body-parser,Javascript,Node.js,Routes,Snowflake Cloud Data Platform,Body Parser,我使用SnowSQL作为数据库,并创建了一个用户配置文件功能。当我输入我的用户信息用户名、密码、firstname、lastname时,它们都返回为未定义 My app.js代码: var snowflake = require('snowflake-sdk'); const express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = requir

我使用SnowSQL作为数据库,并创建了一个用户配置文件功能。当我输入我的用户信息用户名、密码、firstname、lastname时,它们都返回为未定义

My 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中吗?任何帮助都会很好

检查请求中是否包含
内容类型
标题 例如:

  • 对于Json数据,包括
    内容类型:application/Json
  • 对于x-www-form-urlencoded,包括
    内容类型:application/x-www-form-urlencoded
    标题

如何添加这些标题?如何检查这些标题?如果您正在使用Postman测试api,则可以在其中包含标题。如果您正在从浏览器发送ajax请求,则可以添加如下示例中所示的标题