Запустите Node.Js на локальном хосте - PullRequest
0 голосов
/ 03 января 2019

Я создал код node.js, который прослушивает sql-сервер и получает доступ к его базе данных, и я пытаюсь запустить код в браузере, используя "http://localhost:1433/test", но он всегда дает людям это enter image description here

это мой код node.js:

const uid = require('uuid');
const express = require('express');
const bodyParser = require('body-parser');
const sql = require('mssql');
const driver = require('msnodesqlv8');

const config = {
// multipleStatements: true, TO EXECUTE MORE THAN ONE QUERY IN ONE STATEMENT
//driver: 'msnodesqlv8',
server: 'MOSTAFA',
user: 'admin',
password: 'mostafabaron123@',
database: 'WholeSale',
options:{
 trustedConnection: true,
 useUTC: true,
}
};
const userExistCode = 200;
const buyerCreatedCode = 400;
const buyerNotCreatedCode = 401;
const sellerCreatedCode = 500;
const sellerNotCreatedCode = 501;
const connectionErrCode = 100;

var app = express();
app.use(bodyParser.json()); // accept JSON parms
app.use(bodyParser.urlencoded({extended:true}));


// bueyer signup part
app.post('/buyerSignUp', function(req, res) {
var postData = req.body; // get post params
var userId = uid.v4();

sql.connect(config, (err)=>{
 if(err){
   console.log('not connected');
   return;
 }

var request = new sql.Request();

request.input('email', sql.VarChar(45), postData.email)
.input('password', sql.VarChar(45), postData.password)
.input('category', sql.VarChar(45), postData.category)
.query('select * from Buyer where email = @email and category = @category 
and password = @password'
, (err, recordSet)=>{
  if(recordSet.length == 1){
  res.status(userExistCode).send("Buyer already exists.");
 }else{
    new sql.Request()
    .input('buyerId', sql.VarChar(45), userId)
    .input('firstName', sql.VarChar(45), postData.firstName)
    .input('lastName', sql.VarChar(45), postData.lastName)
    .input('email', sql.VarChar(45), postData.email)
    .input('password', sql.VarChar(45), postData.password)
    .input('phoneNumber', sql.VarChar(45), postData.phoneNumber)
    .input('category', sql.VarChar(45), postData.category)
    .query('insert into Buyer(buyer_id, first_name, last_name, email, 
    password, phone_number, category) values(@buyerId, @firstName, 
    @lastName, @email, @password, @phoneNumber, @category)'
    , (err, recordSet)=>{
    if(err){
      console.log(err);
      return;
    }
        if(recordSet.length == 1){
          res.status(buyerCreatedCode).send("Account Created as Buyer.");
        }else{
          res.status(buyerNotCreatedCode).send("Account not Created as 
 Buyer.");
        }
 });
 }
 });
 });
 });
 app.listen(1433, ()=>{
 console.log('server is running on 1433...');
 });

что я ожидаю увидеть сообщения, если пользователь создал или уже существовал. Кто-нибудь может объяснить, почему это происходит?

1 Ответ

0 голосов
/ 03 января 2019

Я полагаю, что после прочтения вашего кода происходит следующее: вы запускаете express и слушаете порт 1433. Он успешно вызывает ваш обратный вызов прослушивания и печатает соответствующий оператор console.log, поэтому мы знаем, что он получает это.far.

Затем вы пытаетесь подключиться к вашей базе данных.Ваш порт базы данных также равен 1433, что, как мы знаем, неверно (порт базы данных не может совпадать с вашим портом Express, если бы он был, экспресс никогда бы не запустился).Таким образом, ваше подключение к базе данных не удается.

Обратный вызов подключения к базе данных проверяет наличие ошибки, а затем возвращает.Это означает, что вы никогда не увидите «подключенный» оператор console.log и фактически никогда не создадите маршрут для /buyerSignup.По сути, ваше приложение работает, но не имеет полезных маршрутов.

(я не уверен, что вы даже ожидаете увидеть по URL /test - в этом фрагменте кода ничего не показано, как вы создавали этот маршрут.Но, в любом случае, вам нужно будет исправить вышеуказанные проблемы.)

...