所以,我想选择随机文件,读取它的内容,拆分它,并将它字符串化。
但问题是文件总是相同的。(我刷新了页面大约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);
文件内容示例:Theexamplefile
在服务器启动之前确定“随机”文件。为了对每个请求执行此操作,您需要在请求回调中调用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
(有关更多信息,请参阅此处)
2.)ReadFileSync
块,则应考虑使用非阻塞读取操作,例如fs.Promises.ReadFile()