Я использую Express в NodeJS для принятия URL POST Request Call
, после чего система ответит JSON File
по запросу. Моя текущая реализация в методе Hardcode , так как всякий раз, когда я хочу добавить больше POST Request Input
и определить, какой JSON File
должен быть прочитан, мне нужно будет вручную добавить больше code
, таких как if-else
заявление в Javascript File
.
Вывод My Desire:
Можно ли создать файл конфигурации с JSON или YAML, где пользователь сможет редактировать файл конфигурации всякий раз, когда он хочет добавить больше Post Request Input
и добавить дополнительные условия, для которых JSON File
будет открыт вместо ручного добавить еще код к Javascript File
?
Мой мотив состоит в том, чтобы позволить пользователю легко вносить изменения, не касаясь кода реализации в самом Javascript File
, но вместо этого им просто приходится иметь дело с файлом конфигурации.
Метод жесткого кода: (ОБНОВЛЕНО)
const postConfig = require( "./config/postConfig" )
// before allow configuration, the code is
// app.post('/api',function (req, res, next)
// after configuration, I just need to change the value in postConfig.json to determine the POST URL.
app.post(postConfig.URL,function (req, res, next) {
// HARDCODE AREA - The POST Request Input
// What I want is make this 'userID' is configurable/changable using JSON file.
// Which mean its value will based on the value at JSON file. But not HARDCODE it as 'userID'.
// If I want to change to 'foodID', I just change it at JSON file.
var input = req.body.userID,
// HARDCODE AREA - ALL OF THE IF ELSE Statement
if(input =="1"){
var contents = fs.readFileSync(publicdir+"/api/a.json");
var jsonContent = JSON.parse(contents);
res.send(jsonContent);
}else if(input =="2"){
var contents = fs.readFileSync(publicdir+"/api/b.json");
var jsonContent = JSON.parse(contents);
res.send(jsonContent);
}else{
res.status(404);
res.json({
error: {
code: 404 + " - Invalid ID"
}
});
}
});
postConfig.json:
// This allow configuration for the POST URL
{
// I can change to
// "URL" : "/api" or any value i want
"URL" : "/plus"
}