У меня Node.js сервер получает данные из файла user.jsonNode.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
}
]
}
Как вы видите, запрос получения отображает всех пользователей на маршруте/списке. Теперь я хочу получить их по ID, чтобы удалить определенного пользователя.
URL должен выглядеть следующим образом:/ListUsers/идентификатор
Но, как я новичок в этом, я 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? Лодаш предназначен для массивов, не так ли? Итак, нужно ли использовать JSON.parse() для данных, чтобы на самом деле было возможно выполнить метод find? – Faigjaz
My bad ... Действительно, readFile называет вас строкой, поэтому сначала нужно разобрать ее как JSON. Отредактировал ответ. – wigy