【问题标题】:Cannot Get in Node Js无法进入Node Js
【发布时间】:2020-06-08 18:58:09
【问题描述】:

我是 node js 的新手,并创建了一个简单的应用程序来查询存储在数据库(MySql)中的数据。所以我正在做的是,我创建了一个名为 stock 的数据库,我正在使用 index.html 查询它以显示它在 get.html 但执行 get 请求后,我无法获得结果。 这是我的 app.js

const express=require('express');
const app=express();
const port= 5050;
const bodyParser=require("body-parser");

app.use(bodyParser.urlencoded({extended:false}));

app.get('/',(req,res)=>res.sendFile(__dirname + '/index.html'));

app.post('/get',function(req,res){
const mysql=require('mysql');


const con=mysql.createConnection({
    host:"localhost",
    user:"root",
    password:"abc123",
    database:"abc",
});

con.connect(function(err){
    if(err) throw err;
    console.log("Connected");
    let sqlQuery='SELECT * FROM stock';
con.query(sqlQuery,(err,rows)=>{
    if(err) throw err;
    console.log('Data Received:-');
    console.log(rows);


        });
    });
});
app.listen(port);

我的 Index.html:-

<!DOCTYPE html>
<html>
<head>
    <title>My node js app</title>
</head>
<body>
    <form action="/get" method="get">
        <h1>Welcome to Stock manipulation</h1><br></br>
        Select option<select>
        <option value=0>Get</option></select>
        <input type="submit" id="query" value="get Result">
</body>
</html>

还有我的 get.html

<!DOCTYPE html>
<html>
<head>
    <title>Get</title>
</head>
<body>

</body>
</html>

这是存储在数据库中的数据

[ RowDataPacket { id: 1, type: 'BSE' },
  RowDataPacket { id: 2, type: 'NSE' } ]

提交请求后我得到的错误是

【问题讨论】:

    标签: node.js express post get


    【解决方案1】:

    你的 nodejs 服务器在说什么?在您的路线中,您通常希望返回一些数据。例如,在您的情况下,您的 /get route res.send(data)。这样您的前端就可以显示收到的数据。看起来您还需要将表单更改为帖子而不是获取(编辑:正如 Nikos M. 提到的)。

    如果您不熟悉 http 请求,我建议您下载 Postman 以习惯测试您的路由请求。

    【讨论】:

    • 好的,我会试试的。
    【解决方案2】:

    改变

    &lt;form action="/get" method="get"&gt;

    &lt;form action="/get" method="post"&gt;

    正如您定义的 /get 路由 (app.post('/get',function(req,res){/*..*/}))

    只接受post 请求

    同样在你的/get 路由处理程序中你应该输出一些东西。现在你不输出任何东西,只登录到 node.js 控制台

    【讨论】:

    • 不走运 开始发帖
    • @abby,你应该从你的/get 处理程序中输出一些东西,即使它只是一个测试字符串,现在你只登录到节点控制台你不会向网络浏览器返回任何东西,尝试返回一些 html
    猜你喜欢
    • 2021-09-25
    • 2015-03-06
    • 2020-01-12
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多