我得到了一个未捕获的TypeError:无法读取属性'键入'未定义的

时间:2016-05-26 07:25:25

标签: sql-server node.js express

我试图读取表单并将数据存储在数据库中。 我使用SQL服务器数据库。当我执行以下代码时,它给了我一个未被捕获的错误[TypeError:无法读取属性'键入'未定义的]。 我检查了每个变量,但没有一个变量具有未定义的值。我无法搞清楚,请帮助。

var express = require('express');
var router = express.Router();
var sql = require('mssql');


router.post('/',function(req,res,next){
   //Fetching form variables
   var ProfCreatedby =req.body.ctl00$ContentPlaceHolder1$DDLProfileCreatedBy;
   var title =req.body.ctl00$ContentPlaceHolder1$DDLTitle;
   var Fname =req.body.ctl00$ContentPlaceHolder1$txtFname;
   var Mname =req.body.ctl00$ContentPlaceHolder1$txtMname;
   var Lname =req.body.ctl00$ContentPlaceHolder1$txtLname;
   var dob =req.body.ctl00$ContentPlaceHolder1$txtDateofBirth;
   var Btime =req.body.ctl00$ContentPlaceHolder1$txtBirthTime;
   var gender =req.body.ctl00$ContentPlaceHolder1$DDLGender;
   var religion =req.body.ctl00$ContentPlaceHolder1$DDLReligion;
   var caste =req.body.ctl00$ContentPlaceHolder1$DDLCaste;
   var education =req.body.ctl00$ContentPlaceHolder1$DDLEducationCatogery;
   var degree =req.body.ctl00$ContentPlaceHolder1$DDLEducationDegree;
   var EduDetail =req.body.ctl00$ContentPlaceHolder1$txtEDucationalDetails;
   var Mtounge =req.body.ctl00$ContentPlaceHolder1$txtMotherTongue;
   var Address1 =req.body.ctl00$ContentPlaceHolder1$txtAddress1;
   var Address2 =req.body.ctl00$ContentPlaceHolder1$txtAddress2;
   var City =req.body.ctl00$ContentPlaceHolder1$txtCity;
   var District =req.body.ctl00$ContentPlaceHolder1$txtDistrict;
   var Country =req.body.ctl00$ContentPlaceHolder1$DDLCountry;
   var State =req.body.ctl00$ContentPlaceHolder1$DDLState;
   var PIN =req.body.ctl00$ContentPlaceHolder1$txtPinCode;
   var Phone =req.body.ctl00$ContentPlaceHolder1$txtPhoneNo;
   var Mobile =req.body.ctl00$ContentPlaceHolder1$txtMobileNo;
   var Email =req.body.ctl00$ContentPlaceHolder1$txtEmailId;
   var Height =req.body.ctl00$ContentPlaceHolder1$DDLHeight;
   var Weight =req.body.ctl00$ContentPlaceHolder1$DDLWeight;
   var Built =req.body.ctl00$ContentPlaceHolder1$DDLBuilt;
   var Complexion =req.body.ctl00$ContentPlaceHolder1$DDLComlixation;
   var BGroup =req.body.ctl00$ContentPlaceHolder1$DDLBloodGroup;
   var PhyDisable =req.body.ctl00$ContentPlaceHolder1$DDLPhyscalyDisable;
   var Intercaste =req.body.ctl00$ContentPlaceHolder1$DDLIntercaste;
   var RforA =req.body.ctl00$ContentPlaceHolder1$DDLReadyForAbroad;
   var Mstatus =req.body.ctl00$ContentPlaceHolder1$DDlMarrigeStatus;
   var ChildIfAny =req.body.ctl00$ContentPlaceHolder1$DDLChildIfAny;
   var AboutMe =req.body.ctl00$ContentPlaceHolder1$txtAboutMe;
   var Expectation =req.body.ctl00$ContentPlaceHolder1$txtExpectionFromPartner;

   // database configuration
   var config = {
       user:'USER',
       password:'PASSWORD',
       server: 'SERVER',
       database: 'DATABASE'
   };
   sql.connect(config).then(function(){
       // input variables for stored procedure
       var request = new sql.Request();
       request.input('@Username',sql.VarChar(256),'ChetanAngari');
       request.input('@ProCreateBy',sql.VarChar(50),profCreatedby);
       request.input('@Title',sql.VarChar(6),title);
       request.input('@Fname',sql.VarChar(50),Fname);
       request.input('@Mname',sql.VarChar(50),Mname);
       request.input('@Lname',sql.VarChar(50),Lname);
       request.input('@DOB',sql.datetime,dob);
       request.input('@DOBTime',sql.Varchar(10),Btime);
       request.input('@Gender',sql.VarChar(6),gender);
       request.input('@Religion',sql.VarChar(50),religion);
       request.input('@Caste',sql.VarChar(50),caste);
       request.input('@EduCate',sql.VarChar(25),education);
       request.input('@Degree',sql.VarChar(25),degree);
       request.input('@EduDetail',sql.VarChar(50),EduDetail);
       request.input('@MotherTonge',sql.VarChar(50),Mtounge);
       request.input('@Add1',sql.VarChar(100),Address1);
       request.input('@Add2',sql.VarChar(100),Address2);
       request.input('@City',sql.VarChar(50),City);
       request.input('@Distric',sql.VarChar(50),District);
       request.input('@State1',sql.VarChar(50),State);
       request.input('@Country',sql.VarChar(50),Country);
       request.input('@PIN',sql.VarChar(50),PIN);
       request.input('@PhNo',sql.VarChar(25),Phone);
       request.input('@MobNo',sql.VarChar(25),Mobile);
       request.input('@Email',sql.VarChar(100),Email);
       request.input('@Ht',sql.Int,Number(Height));
       request.input('@Wt',sql.VarChar(25),Weight);
       request.input('@Built',sql.VarChar(25),Built);
       request.input('@Color',sql.VarChar(25),Complexion);
       request.input('@BldGrp',sql.VarChar(4),BGroup);
       request.input('@PhyDis',sql.VarChar(3),PhyDisable);
       request.input('@IntCaste',sql.VarChar(3),Intercaste);
       request.input('@GoToForeign',sql.VarChar(3),RforA);
       request.input('@MamKul',sql.VarChar(50),'ChetanAngari');
       request.input('@NCKul',sql.VarChar(50),'ChetanAngari');
       request.input('@MStatus',sql.VarChar(20),Mstatus);
       request.input('@Child',sql.Int,parseInt(ChildIfAny));
       request.input('@AboutMe',sql.VarChar(200),AboutMe);
       request.input('@ExpPart',sql.VarChar(200),Expectation);
       request.input('@PhPath1',sql.VarChar(100),'ChetanAngari');
       request.input('@PhLogo',sql.VarChar(100),'ChetanAngari');
       request.input('@ProType',sql.VarChar(1),'C');
       request.input('@PhVerficationPending',sql.VarChar(1),'C');
       request.input('@ProCrtDt',sql.datetime,Date.now());
       request.input('@ProEndDt',sql.datetime,Date.now());
       request.input('@Visible',sql.VarChar(1),'C');
       request.input('@CUser',sql.VarChar(50),'ChetanAngari');
       request.input('@AdminLock',sql.VarChar(1),'C');
       request.execute('STORED PROCEDURE',function(err,recordsets,returnValue){
           if(err) console.log(err);
           console.dir(recordsets);
           console.log(returnValue);
           console.log('Command Success..');
       });
   }).catch(function(err){
       console.log(err);
   });
   res.end();
});
module.exports = router;

下面是Stack trace ....

TypeError: Cannot read property 'type' of undefined
at Request.input (C:\Users\Ishant\Documents\NodeWork\OceanTech\BouddhaLifePartnerMarriage\node_modules\mssql\lib\main.js:1257:19)
at C:\Users\Ishant\Documents\NodeWork\OceanTech\BouddhaLifePartnerMarriage\routes\UserInfoUpdate.js:62:20
at process._tickCallback (node.js:406:9)

1 个答案:

答案 0 :(得分:0)

我知道这太疯狂了,但是我遇到了同样的问题,万一遇到其他人,我发现它实际上是.input的类型变量中的区分大小写的问题。您有request.input('@DOB',sql.datetime,dob);,它应该是request.input('@DOB',sql.DateTime,dob);,大写的“ D”和“ T”。