javascript - 如何使用 Node.js 和 EXPRESS 在一个文件 Restful API 中设置两个根端点

标签 javascript node.js rest api 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

在第二个根点上就可以了。我尝试使用 HeidiSQL 进行SELECT,数据库返回数据值?

**SELECT station,ime FROM stations_cells**

第二个根点的问题出在哪里?

最佳答案

情况可能并非如此,但这是建议(不适合评论部分)

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

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

关于javascript - 如何使用 Node.js 和 EXPRESS 在一个文件 Restful API 中设置两个根端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58817795/

相关文章:

node.js - 这是在 mongodb 中创建自动增量的正确原因吗?

javascript - Ember 数据:如何正确发布

javascript - 如果未选中任何复选框,则将状态设置为 0

javascript - 我想从 javascript 随机改变渐变 Angular

node.js - 不支持 Nodejs 10.x 运行时的 Sam 构建失败

java - 如何在 Java REST/AngularJS 前端获取 JSON

javascript - HTML 表单提交给出 400 错误请求

javascript - JQuery 分割选择器

javascript - 管理网站后台和前台

javascript - 根据 NODE_ENV 设置 gulp 任务