我是Node的新手,正在尝试使用Express在Node中构建一个简单的服务器。请求的形式为/input00001/1/output00001。我需要做的是解析此请求,如果标志为1(中间值),则需要用文件\home\inputfiles\input00001.txt替换文件\home\outputfiles\output00001.txt。如何做到这一点?

到目前为止,这是我的简单服务器。如果可以简化事情,我可以不使用Express和纯NodeJ。

const express = require('express');
const app = express();
const port = 8000;

app.get('/', (request, response) => {
  response.send('Hello from Express!');
  request.param
});

app.get('/*', (request, response) => {
  response.send('Start!');
    var url = request.originalUrl;
});

app.listen(port, (err) => {
  if (err) {
    return console.log('something bad happened', err);
  }
  console.log(`server is listening on ${port} for incoming messages`);
});

最佳答案

您应该设置一条将这些项目用作url参数的路由,然后使用这些参数执行所需的操作。例如,如果您的网址是/input00001/1/output00001,则可以设置如下所示的路由:

app.get('/:input/:flag/:output', (req, res) => {
    var params = req.params
    var input = params.input   //input0001
    var flag = params.flag     // 1
    var output = params.output //output0001

    // now do what you need to with input, flag, and output
    if(typeof flag!=='undefined' && flag==1){
       var file_name_string = '\home\inputfiles\input00001.txt';
       var res = file_name_string.replace("input", "output");
     }

    console.log(input, flag, output)
    res.send("done")
})

09-19 22:16