- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
以下服务器应该:
案例 #1:如果请求是 http://localhost:8080
mysitename.html
CASE #2:如果请求是,则提供相关文件http://localhost:8080/mysitename.html
案例 #3 如果请求是 http://localhost:8080/contactform?name=..&..&...etc.
如果我访问 http://localhost:8080/mysitename.html
一切正常。加载 mysitename.html
,然后通过它加载所有后续内容(.js、.css、.png 等)。
问题: 但是,如果我访问 http://localhost:8080
,会发生以下情况:
CASE#2 最初有一个错误导致了 Johnny Estilles 发现的无限循环(参见下面他的回答)。此问题已得到修复,但现在出现了上述问题。
server.js
// setting up email handler
var nodemailer = require('nodemailer');
var emailHandlerService = 'Gmail';
var emailHandlerAddress = ******;
var emailHandlerPassword = ******;
var transporter = nodemailer.createTransport({
service: emailHandlerService,
auth: {
user: emailHandlerAddress,
pass: emailHandlerPassword
}
});
// setting up http server
var http = require('http');
var fs = require('fs');
var url = require("url");
var path = require("path");
var rootDir = __dirname + "/public";
var mimeTypes = {
"html": "text/html",
"jpeg": "image/jpeg",
"jpg": "image/jpeg",
"png": "image/png",
/* Even though the js mime type is set as well, scripts are still sent
as "text/plain" according to the Chrome console. Why is that ? */
"js": "application/javascript",
"css": "text/css",
"ico": "image/ico"
};
// initializing server
var httpServer = http.createServer(function (request, response)
{
// CASE #1
// if the user is on http://localhost:8080, load public/mysitename.html
if (request.url === "/")
{
fs.readFile('public/mysitename.html', function (err, html)
{
if (err)
{
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write('404 Not Found\n');
throw (err);
}
else
{
response.writeHeader(200, {"Content-Type": "text/html"});
response.write(html);
}
});
}
// CASE #2
// else if this is a contact form data request
// forward the data to my email (I'll make a more precise Regex for the request)
else if (/contactform/.test(request.url))
{
var parsedURL = url.parse(request.url, true);
var name = parsedURL.query.name;
var email = parsedURL.query.email;
var subject = parsedURL.query.subject;
var enquiry = parsedURL.query.enquiry;
var browser = parsedURL.query.browsername + " " +
parsedURL.query.browserversion;
transporter.sendMail({
from: emailHandlerAddress,
to: emailHandlerAddress,
subject: subject,
text: "|| NAME = " + name + " || EMAIL = " +
email + " || BROWSER = " + browser + " || DEVICE = " +
parsedURL.query.device + " || ENQUIRY = " + enquiry
});
response.end(JSON.stringify(parsedURL.query));
}
// CASE #3
// if none of the above is true then this is a request to serve static files
else
{
var pathname = url.parse(request.url).pathname;
var filename = path.join(rootDir, pathname);
fs.exists(filename, function (exists)
{
if (!exists)
{
fs.readFile('public/404.html', function (err, html)
{
if (err)
{
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write('404 Not Found\n');
throw (err);
}
else
{
response.writeHeader(200, {"Content-Type": "text/html"});
response.write(html);
}
response.end();
});
}
else
{
var requestedFileExtension = path.extname(filename).split(".")[1];
var mimeType = mimeTypes[requestedFileExtension] || 'text/plain';
// as I noted above, this doesn't seem to have any effect
// for my .js files
response.writeHead(200, mimeType);
var fileStream = fs.createReadStream(filename);
fileStream.pipe(response);
}
});
}
}).listen(8080);
最佳答案
修复问题 #1:无限循环
您在初始 if()
中缺少一个(或两个)等号。
改变
if (request.url = "/")
到
if (request.url == "/")
or
if (request.url === "/")
修复问题 #2:无法加载资源:net::ERR_INCOMPLETE_CHUNKED_ENCODING
您在案例 #1 中缺少 response.end()
。
// CASE #1
// if the user is on http://localhost:8080, load public/mysitename.html
if (request.url === "/")
{
fs.readFile('public/mysitename.html', function (err, html)
{
if (err)
{
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write('404 Not Found\n');
throw (err);
}
else
{
response.writeHeader(200, {"Content-Type": "text/html"});
response.write(html);
}
response.end(); // <-- MISSING
});
}
关于javascript - 我的第一个 Node.js 服务器:加载资源失败:net::ERR_INCOMPLETE_CHUNKED_ENCODING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26206719/
我使用 .htaccess 将 url 从 someurl.com/重写为 someurl.com/public/。 www root 中的第一个 .htaccess 包含以下内容: Director
加载后一切正常,hmr 正在工作。然后就出现这个错误。 GET http://localhost:3000/__webpack_hmr net::ERR_INCOMPLETE_CHUNKED_ENCO
我有一个灯塔上的网站,除了我的根 .htaccess 中存在的 FallbackResource/index.php 之外几乎没有额外的配置 当我在 Chrome 中加载根页面 (localhost)
当我尝试打开一些子页面(这里不是所有的子页面,只有几个)时,我在控制台上出现以下错误并且子页面没有加载: jquery-3.4.1.js:9837 获取 https://myWebSite.com/A
我在 2 个不同的服务器上托管了 2 个 RoR Web 应用程序。对于一个特定页面,请求由第二个应用程序提供。对于其余页面,请求由主应用程序提供。 主应用程序的 Nginx 设置 location
我的应用程序没有加载 View (有时)时遇到了一些问题。 我正在运行带有 php-fpm 和 nginx(php5.6.8 和 nginx 1.8.0)的 Debian 服务器,两者都是从源代码编译
我正在编写一个从 Bing Ads API 生成报告的网络应用程序,按照此处看到的示例: http://msdn.microsoft.com/en-us/library/bing-ads-report
当我使用仅包含这一行的 .htaccess 时: FallbackResource index.php 我只在 Chrome 上遇到这个错误: net::ERR_INCOMPLETE_CHUNKED
这只发生在 Google Chrome 和 Chromium 上,并且全新安装了 Laravel。 页面显示空白,在控制台中显示: (failed) net::ERR_INCOMPLETE_CHUNK
在过去的两个月里,我在 Chrome 的开发者控制台上收到以下错误: net::ERR_INCOMPLETE_CHUNKED_ENCODING 症状: 页面未加载。 截断的 CSS 和 JS 文件。
你好,我正在尝试使用 php 显示大型 json,但是当 JSON 文件很大时,我得到 Net::ERR_INCOMPLETE_CHUNKED_ENCODING 并查看 "/var/lib/nginx
我正在尝试发送要在媒体 pdf 查看器中显示的 pdf 文件。但每次我尝试显示大于 500Kb 的文件时,它总是返回此错误。 net::ERR_INCOMPLETE_CHUNKED_ENCODING
在 Chrome 58.0.3029 上使用 Vue.js 2.3.4 进行开发时,我不断在开发者工具控制台中收到此错误: 无法加载资源:net::ERR_INCOMPLETE_CHUNKED_ENC
我最近遇到了一个 Chrome 问题,我认为它值得与您分享。 我使用 HttpHandler 开发了一个自写的 API,主要应该返回 json 数据。但是当发生错误时,我想显示一个 html 文件。这
大家好,我正在用 tomcat 在 jsp 中开发一个 Web 应用程序,但是如果我用 chrome 显示我的一个页面,我会遇到一个奇怪的问题。 请求到servlet后,通过如下代码将页面重定向到js
以下服务器应该: 案例 #1:如果请求是 http://localhost:8080,则提供 mysitename.html CASE #2:如果请求是,则提供相关文件http://localhost
在本地服务器环境下访问我的test.php,chrome不会加载页面。 "; echo ""; echo "Hello World"; echo ""; echo ""; ?> 最佳答
我最近将应用程序升级到 Laravel 4.1,然后开始收到此错误(仅限 Chrome) net::ERR_INCOMPLETE_CHUNKED_ENCODING 在控制台日志中。我在 Laravel
我正在尝试根据 boolean 字段的值显示 html 标签。使用 modelAttribute 将值从 Spring Controller 传递到 View 。 代码片段如下: Vat
我已经使用 SPRING MVC 和 JSP 开发了一个 Web 应用程序,现在这些应用程序在本地运行得非常好,但是当我部署到服务器上时,我收到了这个错误。没有任何内容被加载。 除登录页面外,所有页面
我是一名优秀的程序员,十分优秀!