gpt4 book ai didi

javascript - 本地node.js服务器和python简单http服务器有什么区别

转载 作者:行者123 更新时间:2023-12-03 06:56:14 24 4
gpt4 key购买 nike

我正在尝试在本地构建 D3.js 图表。所以我的 csv 文件和 index.html 位于桌面上的同一文件夹中。当我运行 python 本地服务器时,一切都运行完美,但是当我使用以下代码运行 node.js 服务器时:

var http = require('http');

var server = http.createServer(function(request, response)
{
console.log('test');
response.write('test');
response.end();
});

server.listen(8000);

这不起作用。

所以我的问题是:Python 本地服务器和 Node.js 本地服务器之间有什么区别。我应该怎么做才能使我的node.js本地服务器像我的python本地服务器一样工作?

最佳答案

使用 Express

Node 中的服务器是正确的,但它始终将响应作为测试发送。由于您需要提供项目的静态文件,因此可以使用express。

server.js

var express = require('express');
var app = express();
app.use(express.static('public'));
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});

假设您的文件放置在名为 public 的文件夹中。并且具有相似的结构。

|package.json
|server.js
|public
- files

python SimpleHTTPServer 可以工作,因为它托管当前目录(从调用它的任何地方)

如果您不想使用 express 您可以使用纯 Node.js 创建它。 Here is the link to a gist, that i found useful

var http = require("http"),
url = require("url"),
path = require("path"),
fs = require("fs")
port = process.argv[2] || 8888;

http.createServer(function(request, response) {

var uri = url.parse(request.url).pathname
, filename = path.join(process.cwd(), uri);

path.exists(filename, function(exists) {
if(!exists) {
response.writeHead(404, {"Content-Type": "text/plain"});
response.write("404 Not Found\n");
response.end();
return;
}

if (fs.statSync(filename).isDirectory()) filename += '/index.html';

fs.readFile(filename, "binary", function(err, file) {
if(err) {
response.writeHead(500, {"Content-Type": "text/plain"});
response.write(err + "\n");
response.end();
return;
}

response.writeHead(200);
response.write(file, "binary");
response.end();
});
});
}).listen(parseInt(port, 10));

console.log("Static file server running at\n => http://localhost:" + port + "/\nCTRL + C to shutdown");

关于javascript - 本地node.js服务器和python简单http服务器有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37261690/

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