我正在创建一个服务器,该服务器从目录中提取JSON数据并将其解析为可以通过$ .getJSON()在前端读取的文件。我的问题是如何更新前端文件中的数据,并查看文件本身中的更新?
我尝试使用ajax的post方法,但出现404错误。我发现我需要写一个“端点”来指向ajax URL。我在哪里放置此Javascript端点文件/如何在Express中编写它。
服务器代码:
const express = require('express');
const fs = require('fs');
const app = express();
var cors = require('cors');
var curl = require('curl');
var jsdom = require('jsdom');
app.use(cors());
app.use(express.static('public'));
app.set('view engine', 'ejs');
app.listen(3030, function () {
console.log('Example app listening on port 3030!')
})
// Document
var dirBuf = Buffer.from('public/assets/jsonfiles')
fs.readdir(dirBuf, (err, files) => {
if (err) {
console.log(err.message);
}
else {
var all = [];
//files
files.forEach(function(filename) {
var txt = fs.readFileSync('public/assets/jsonfiles/' + filename);
var filecontents = JSON.parse(txt)
all = (all.concat(filecontents));
})
var back = JSON.stringify(all, null, 2)
/* UNCOMMENT TO CREATE FRONT END FILE */
// fs.writeFileSync('public/assets/frontEndJSON/allrequests.json', back)
}
});
app.post('/', function (req, res) {
fs.writeFileSync('public/assets/frontEndJSON/allrequests.json', req.body)
})
app.get('/', function (req, res) {
res.render('index')
});
前端Javascript代码(ajax请求)
var back = JSON.stringify(q.items, null, 2)
$.ajax({
type: 'POST',
url: 'public/assets/js/controller.js',
data: back,
dataType: 'json'
})
}
我的文件结构如下:
-project-folder
-public
-assets
-FronendFiles
-json file I read from and want to update
-js
-main.js
-server.js