nodeJS: получить ответ не открывается в браузере - говорит, что страница не работает - PullRequest
1 голос
/ 31 марта 2019

Я создал как RestAPI, используя node.js, который соединяет сервер MySQL, соединения успешны, но когда я запрашиваю URL, браузер продолжает загружаться и говорит: this page is not working

const mysql = require('mysql');
const express = require('express');
const bodyparser = require('body-parser');

var app = express();
app.use(bodyparser.json)
var mySqlConnection = mysql.createConnection({
host :'db4free.net',
user:'username',
password:'password',
database:'db'

});

mySqlConnection.connect((err)=>{
if(!err)
console.log('success');
else
console.log('failed' +JSON.stringify(err,undefined,2));
});


app.listen(3000,()=>console.log('Express server is running at port 
3000'));

app.get('/tasks',(res,req)=>{
mySqlConnection.query('SELECT * FROM tasks',(err,rows,fields)=>{
 if(!err)
 console.log(rows[0]);
 else
 console.log(err);
})
});

Когда я пытаюсьURL localhost:3000/tasks, в браузере ничего не загружено.Ожидается вывод при открытии URL localhost:3000/tasks, строка данных должна быть зарегистрирована в консоли, но вместо этого сам URL не открывается.

1 Ответ

1 голос
/ 31 марта 2019

Вы не вызываете функцию bodyparser.json, которая будет возвращать промежуточное ПО для анализа вашего запроса.Вы должны включить его, как показано ниже:

app.use(bodyParser.json());

Кроме того, вы должны завершить запрос на загрузку данных в браузере, отправив данные или завершив запрос, используя req.json или req.end.Вы должны поменять местами req, res объекта в аргументах функции, так как req предшествует res.

app.get('/tasks',(req, res)=>{
    console.log('fefefe')
    mySqlConnection.query('SELECT * FROM tasks',(err,rows,fields)=>{
        if(!err)
            console.log(rows[0]);
        else
            console.log(err);
        res.send({d: rows[0]})
    })
});
...