nodeJS:获取响应未在浏览器中打开-说页面不起作用

Posted

技术标签:

【中文标题】nodeJS:获取响应未在浏览器中打开-说页面不起作用【英文标题】:nodeJS : get response is not opening in browser - says page isnt working 【发布时间】:2019-03-31 05:22:34 【问题描述】:

我使用连接 mysql 服务器的node.js 创建了 RestAPI,连接成功,但是当我请求 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 本身并未打开。

【问题讨论】:

console.log(rows[0]); 你只是控制台日志,你还需要发送一些响应,比如res.send('Hello' + rows[0]) 等等。 【参考方案1】:

您没有调用 bodyparser.json 函数,该函数将返回中间件以进行 req 解析。你必须像下面这样包含它:

app.use(bodyParser.json());

此外,您必须通过发送数据或使用req.jsonreq.end 结束请求来结束在浏览器中加载数据的请求。您必须在函数参数中交换 req、res 对象,因为 reqres 之前。

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])
    )
);

【讨论】:

以上是关于nodeJS:获取响应未在浏览器中打开-说页面不起作用的主要内容,如果未能解决你的问题,请参考以下文章

回调未在nodejs中获取记录

curl获取网站的响应时间

图像未在 python OpenCV 中打开 [重复]

JavaScript EventSource SSE 未在浏览器中触发

expo-location 在 ios 中不起作用,并且未在应用设置中显示位置权限

如何在 express/node js 中发送错误 http 响应?