とメソッドを取得し、私はuser.jsonファイルからのデータを受信Node.jsのサーバーを持っているのNode.jsは - ID
var express = require("express");
var app = express();
var bodyParser = require("body-parser");
var router = express.Router();
var cors = require('cors')
var fs = require("fs");
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({"extended" : false}));
app.get('/listUsers', function (req, res) {
fs.readFile(__dirname + "/" + "users.json", 'utf8', function (err, data) {
//console.log(data);
res.end(data);
});
})
var server = app.listen(8081, function() {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
user.json:
{ "data": [
{
"name" : "mahesh",
"password" : "password1",
"profession" : "teacher",
"id": 1
},
{
"name" : "suresh",
"password" : "password2",
"profession" : "librarian",
"id": 2
},
{
"name" : "ramesh",
"password" : "password3",
"profession" : "clerk",
"id": 3
}
]
}
ご覧のとおり、 get要求は、route/listUsers上のすべてのユーザーを表示します。 今私は特定のユーザーを削除するIDによってそれらを取得したい。
URLは次のようになります/ listUsers/ID
しかし、私はこれまで非常に新しいんだと、私はacutallyどのように行うのか分かりません。
私は最初にファイル全体を読んで、何らかの形でIDをURLに設定する必要があると考えています。 どうすればいいですか? 機能を実行する前に要求が送信されていませんか? だから私はこのようにsthを行うとき:
app.get('/listUsers/{this.id}'. function(req,res){
fs.readFile(_dirname + "/" + "users.json", "utf8", function(err, data) {
res.end(data)
id = this.data.id
}}
それは動作しません。 私は実際にmongoDBなどを使いたくないので、可能であれば、これをnodejsサーバだけでテストしたいと思っています。 ご意見/ご提案はありますか?
私はあなたのコードを試しましたが、私はそれが何を理解しますが、私が見ることができるのは空のページです。 – Faigjaz
JSON形式が問題になるかもしれませんか? Lodashは配列用ですね。では、実際にfindメソッドを実行できるようにするためにJSON.parse()をデータに使用する必要がありますか? – Faigjaz
私の悪い...実際には、readFileはあなたに文字列を呼び出すので、まずJSONとして解析する必要があります。答えを編集しました。 – wigy