簡體   English   中英

如何在一個文件中設置兩個根端點 Restful API 與 node.js & EXPRESS

[英]How to set two root endpoints in one file Restful API with node.js & EXPRESS

當用戶像這樣輸入 url 時,我有根端點工作:

http://localhost:8000/?date=2019-10-20&station=41027&daysForward=3

我想用不同的查詢在同一個文件中創建第二個根端點,但這不起作用。

我的代碼:

// Create express app
var express = require("express")
var app = express()
var mysql = require('mysql')
var express = require("express")
var cors = require('cors')

app.use(cors())

// Server port
var HTTP_PORT = 8000

// Start server
app.listen(HTTP_PORT, () => {
    console.log("Server running on port %PORT%".replace("%PORT%",HTTP_PORT))
});

var con = mysql.createConnection({
  host: "192.168.1.1",
  port: "3456",
  user: "user",
  password: "pass"
});

var con2 = mysql.createConnection({
  host: "192.168.1.1",
  port: "3456",
  user: "user",
  password: "pass"
});

let aladinModel= '';
let aladinModelStations = '';

app.route('/')
.get(function(req, res) {
  // omitted
  res.setHeader('Access-Control-Allow-Origin', '*');
  const date = req.query.date;
  const station = req.query.station;
  const daysForward = req.query.daysForward;
  try {
    const query = `CALL aladin_surfex.Get_mod_cell_values_meteogram('${date}', ${station}, ${daysForward})`;
    con.query(query, function (err, result, fields) {
      if (err) throw err;
      aladinModel = result;
    });
    res.json({aladinModel})
  } catch(error){
    console.log("Error query database!!!");
  } 
});

app.route('/stations')
.get(function(req, res) {
  // omitted
  res.setHeader('Access-Control-Allow-Origin', '*');
  try {
    const query2 = `SELECT Station,Ime FROM stations_cells`;
    con2.query2(query2, function (err, result2, fields) {
      if (err) throw err;
      aladinModelStations = result2;
    });
    res.json({aladinModelStations})
  } catch(error){
    console.log("Error query database!!!");

  } 
});

app.use(function(req, res){
    res.status(404);
});

我想這不是路由頁面的正確方法,但我希望有人可以通過一個示例向我解釋我如何修復代碼 - 所以當用戶輸入時:

http://localhost:3000/stations

應該加載數據。

當我嘗試打開此鏈接時看到此錯誤。

[nodemon] starting `node server.js localhost:8000`
Server running on port 8000
Error query database!!!

這個查詢

SELECT station, ime 
FROM stations_cells

在第二個根點上很好。 我嘗試用SELECT和數據庫返回數據值 SELECT?

**從stations_cells中選擇站,ime **

第二個根點的問題在哪里?

情況可能並非如此,但這是建議(不適合評論部分)

app.route('/')
  .get(function(req, res) {
    // omitted
  });

app.route('/stations')
  .get(function(req, res) {
    // omitted
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM