因此,我想选择随机文件,读取其内容,将其拆分并进行字符串化。
但是问题是文件总是一样的。 (我刷新了页面大约10次)
代码:
//require
var fs = require('fs');
var http = require('http')
//require
var files = fs.readdirSync('./pathtofiles');
function randomfile(list){
return list[Math.floor(Math.random() * files.length)];
}
var location = './zdj' + '/' + (randomfile(files))
var data = fs.readFileSync(location, "utf8");
var splittext = data.split("||")
var app = http.createServer(function(req,res){
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({"test1": splittext[0], "test2": splittext[1], "test3": splittext[2]}));
});
app.listen(3000);
文件内容示例:||示例||文件
答案 0 :(得分:0)
在启动服务器之前确定“随机”文件。为了对每个请求执行此操作,您需要在请求回调中调用randomfile(...)
:
const app = http.createServer( (req,res) => {
const location = './zdj' + '/' + (randomfile(files))
const data = fs.readFileSync(location, "utf8");
const splittext = data.split("||")
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({"test1": splittext[0], "test2": splittext[1], "test3": splittext[2]}));
});
注意:
1。)您现在应该使用let/const
而不是var
(有关更多信息,请参见this)
2。)readFileSync
块,您应该考虑使用非阻塞读取操作,例如fs.promises.readFile()