我有3个文件,一个简单的.html:
<!DOCTYPE html>
<html>
<head>
<title>meh server</title>
</head>
<body>
<script src = "index.js"></script>
</body>
</html>
'server.js':
module.exports.proto = function() {
alert("Working function");
}
};
'index.js':
var server = require('./server');
server.proto();
全部在同一个文件夹中。我在我的电脑上安装了node.js,并在3个文件的文件夹上的windows cmd''npm install nodejs'上输入。我无法收到来自server.js的警报,我不知道为什么。
答案 0 :(得分:1)
首先,Node.js是一个运行时,没有DOM。因此,节点中未定义“警报”。
其次,您需要通过执行节点二进制&amp;运行节点程序。将文件名作为命令行参数传递,如
node your_file_name.js
用于在命令行和&amp ;;中获得响应在浏览器中,您需要执行以下操作:
file:server.js
module.exports.proto = function () {
console.log("Working function");
}
file:index.js
var server = require("./server");
server.proto();
现在在命令行中运行以下命令:
node index.js
您将在命令行中看到所需的输出。
file:server.js
module.exports.proto = function () {
return "Working function";
}
file:index.js
var server = require("./server");
var httpServer = require("http");
httpServer.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/html"});
response.write(server.proto());
response.end();
}).
listen(3000, function () {
console.log("server listening on 3000");
});
现在在命令行中运行以下命令:
node index.js
您将在命令行中看到以下内容:
server listening on 3000
现在去浏览器&amp;点击以下内容:
http://localhost:3000/
您将在浏览器中看到所需的输出。
***有关详细信息,我建议您查看节点的“http”API。 https://nodejs.org/api/http.html
感谢。希望它有所帮助...
答案 1 :(得分:0)
首先,您的server.js文件中存在语法错误。
module.exports.proto = function() {
alert("Working function");
};
其次,您在节点中没有'alert'功能。您可以编写console.log而不是
module.exports.proto = function() {
console.log("Working function");
};
然后从命令提示符
运行index.jsnode index.js
您可以在命令提示符中看到“工作功能”消息。
在浏览器中打开html文件不会以同样的方式工作。你真的需要了解节点:)
修改强> index.js
var server = require('./server');
var http = require('http');
fs = require('fs');
http.createServer(function(req, res) {
server.proto();
fs.readFile('index.html', 'binary', function(err, file) {
if(err) {
res.writeHead(500, {"Content-Type": "text/plain"});
res.write(err + "\n");
res.end();
return;
}
res.writeHead(200, {"Content-Type": "text/html"});
res.write(file, "binary");
res.end();
});
}).listen(3000, function() {
console.log("Server started");
});
现在,如果从命令提示符运行index.js,请转到浏览器中的localhost:3000,您可以按照实际需要的方式查看它。
答案 2 :(得分:0)
哦! alert
不是node.js
识别的任何内容,它是浏览器的一部分。
您应该记录您的消息,而不是使用alert
,您似乎还没有复制完整代码,或者它确实是语法错误,因此请将其修复为:
module.exports.proto = function() {
console.log("Working function");
}
现在您可以使用IDE运行index.js
或转到任何shell并拍摄node index
,它将运行节点代码。
其次如果您希望node.js
服务器在浏览器中发送或打开html
文件Follow This Tutorial
答案 3 :(得分:0)
好吧,安装Node.js是一个开始,但似乎你对node.js是什么感到困惑。 Node是运行时。是的,它建立在V8之上(谷歌Chrome中同样的JavaScript VM),但没有DOM,没有浏览器API,也绝对不需要浏览器。因此,alert
在Node中不存在。我建议您熟悉API docs。
如前所述,您通过执行node
二进制文件并将文件作为参数传递(有一个repl和其他选项)来运行节点程序,就像运行python或ruby程序一样。在你的情况下:
node index.js