gpt4 book ai didi

javascript - 读取两个文件并连接到同一字符串但失败

转载 作者:行者123 更新时间:2023-12-03 04:54:26 24 4
gpt4 key购买 nike

首先,抱歉我的英语不好。我制作了一个用于测试 html/css 片段的 Node 程序。我希望这样使用:$node testing.js foo.html foo.css ,但是不行。事实上,它将所有源推送到 <style> 之间。标签。我认为这是文件读取过程的问题,但我无法弄清楚。

var http = require("http"),
fs = require("fs");
filePath = process.argv;

if (filePath.length == 2) {
console.log("need exactly 2 args for testing");
return;
}

var htmlFile = filePath[2],
cssFile = filePath[3];

var testHtml = "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><title>testing</title></head><body>"

fs.readFile(htmlFile, 'utf8', function(err, html) {
if (err) {
console.log("html module not found");
throw err;
}
else {
testHtml += html;
}
});

testHtml += "</body><style>"

fs.readFile(cssFile, 'utf8', function(err, css) {
if (err) {
console.log("css module not found");
throw err;
}
else {
testHtml += css + "</style>";
}
});

function onRequest(request, response) {
console.log("Request Recieved");
response.writeHead(200, {"Content-type": "text/html"});
response.write(testHtml);
response.end();
}

http.createServer(onRequest).listen(8001);

最佳答案

由于 fs.readFile 是异步的,因此您必须在第一个文件的回调函数中执行第二个文件的读取。

fs.readFile(htmlFile, 'utf8', function(err, html) {
if (err) {
console.log("html module not found");
throw err;
}

testHtml += html + "</body><style>";

fs.readFile(cssFile, 'utf8', function(err, css) {
if (err) {
console.log("css module not found");
throw err;
}

testHtml += css + "</style></html>";
});
});

否则您可以使用readFileSync

关于javascript - 读取两个文件并连接到同一字符串但失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42499243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com