Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/node链接main.js_Javascript_Node.js_Express - Fatal编程技术网

Javascript/node链接main.js

Javascript/node链接main.js,javascript,node.js,express,Javascript,Node.js,Express,所以我只是在学习,我正在尝试使用node构建一个web应用程序,我知道我可以使用express,但我正在尝试使用node构建所有应用程序,以便更好地理解 问题是我无法在应用程序上加载main.js页面。 我有一个路由器模块,用于构建页面 function home(req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(fs.readFileSync('./views/header.html

所以我只是在学习,我正在尝试使用node构建一个web应用程序,我知道我可以使用express,但我正在尝试使用node构建所有应用程序,以便更好地理解

问题是我无法在应用程序上加载main.js页面。 我有一个路由器模块,用于构建页面

function home(req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(fs.readFileSync('./views/header.html'));
    res.write('<style>' + fs.readFileSync('./css/styles.css') + '</style>');
    res.write(fs.readFileSync('./views/startpage.html'));
    res.end(fs.readFileSync('./views/footer.html'));
};
功能主页(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.write(fs.readFileSync('./views/header.html');
res.write(“”+fs.readFileSync(“”/css/styles.css')+“”);
res.write(fs.readFileSync('./views/startpage.html');
res.end(fs.readFileSync('./views/footer.html');
};
脚本标记位于页脚部分,就在结束正文标记之前,我需要以不同的方式加载它吗

这里是完整的应用程序,如果这是不够的信息,谢谢

您可能需要一个用于所有css和javascript文件的静态文件服务器。不要在家中发送CSS文件内容,而是包括
/css/styles.css
,并使用适当的文件回答*.css文件的请求:

function staticServer(req, res) {
  fs.readFile(__dirname + req.url, function (err,data) {
    if (err) {
      res.writeHead(404);
      res.end(JSON.stringify(err));
      return;
    }
    res.writeHead(200);
    res.end(data);
  });
})
在footer中,您希望加载一个.js文件—您的节点服务器负责提供该文件,就像它处理一个请求(例如home)一样


如果你在学习Node,试着远离同步函数,它们会阻塞事件循环,并破坏Node的好部分:)

好方法可能是使用一个框架,比如
express
和一个模板引擎,比如
jade
ejs
谢谢,我想我还有很多关于Node js的知识要学习,staticserver函数是否应该重新设置我的主路径,而我不明白如何使用服务器来提供数据和js文件?我将从一个较小的示例开始:如果希望在主函数中加载一个html文件。然后在html文件中包含css。在home函数中,您可以解析请求url。如果以.css结尾,则加载并提供css文件,否则执行当前在家中执行的操作。然后将其扩展为不仅检查.css,而且检查.js等等。我不会在home函数中执行fs.read(),而是写出您想要提供的html。这样可能更容易理解发生了什么。分步工作,然后包含更多内容!