2017-11-10 8 views
0

私はノードを使い慣れていて、エクスプレスを使ってノードに単純なサーバーを構築しようとしています。リクエストは、/input00001/1/output00001という形式です。私がする必要があるのはこのリクエストを解析することです。フラグが1(中間値)の場合は、ファイル\home\inputfiles\input00001.txtをファイル\home\outputfiles\output00001.txtに置き換える必要があります。それはどのように可能ですか?私の単純なノードJsサーバーの解析要求

これまでの単純なサーバーです。エクスプレスと純粋なNodeJを使用しないでOKです。

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`); 
}); 

答えて

1

これらの項目を期待する経路をURLパラメータとして設定し、それらのパラメータを使用して必要な処理を行う必要があります。たとえば、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") 
}) 
+0

ありがとうございました! ':'は変数を指定していますか? ':input'はその文字列を変数' input'に入れることを意味しますか? – Ariana

+0

はい ':input'はルートパラメータで、' params'オブジェクトで利用できます。詳細はこちら* https://expressjs.com/en/guide/routing.html * express route parameters *見出しの下にあります。 –

+0

ありがとうございます。ファイルコピー機能も手助けできますか?だから私はあなたの答えに印をつけます。 – Ariana

関連する問題