[英]How do i include multiple libraries on my local node.js server html page
所以我有一個html頁面,上面有一些面部識別庫,它工作正常。 但是,當我將html頁面放在node.js本地服務器上時,不再包含所有圖片和javascript庫。 對於每個庫,我在html頁的第一行得到一個“ Uncaught SyntaxError:Unexpected token <”錯誤。
我試圖從如下的node.js文件中包括它們:
var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, fs = require('fs')
, five = require("johnny-five"),
led;
//iets met poort 80
app.listen(80);
// webserver handler
function handler (req, res) {
fs.readFile(__dirname + '/emotie.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
function handler (req, res) {
fs.readFile(__dirname + '/js/emotionmodel.js',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading emotionmodel.js');
}
res.writeHead(200);
res.end(data);
});
}
function handler (req, res) {
fs.readFile(__dirname + '/js/emotion_classifier.js',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading emotionClassifier.js');
}
res.writeHead(200);
res.end(data);
});
}
但是它仍然不起作用,並且文件路徑肯定是正確的。
您得到的錯誤是瀏覽器需要客戶端JavaScript而不是HTML時。
首先,您有兩個名為handler
而實際上僅使用其中一個。 您應該考慮使用皮棉機來幫助您發現類似的問題。
另外,您正在嘗試編寫單獨的處理程序以分別處理所有單個文件-相反,您應該做的是將所有靜態內容(HTML,JS和您要提供的所有其他內容)放在一個目錄中並提供所有服務其中的文件。
如果將所有內容都放在一個名為public
的目錄中,則可以使用Express來使用類似這樣的內容:
var path = require('path');
var express = require('express');
var app = express();
var dir = path.join(__dirname, 'public');
app.use(express.static(dir));
app.listen(3000, function () {
console.log('Listening on http://localhost:3000/');
});
如果您不想使用Express,請參見以下答案以獲取更多文件提供選項:
我還注意到,您直接在端口80上偵聽,這通常意味着您以root用戶身份運行Node應用程序。 考慮以非特權用戶身份運行它,並使用反向代理在端口80上偵聽並將流量傳遞給在其他端口上偵聽的應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.