Javascript ';要求';在定义之前已使用

Javascript ';要求';在定义之前已使用,javascript,node.js,Javascript,Node.js,我开始学习Node.js。我买了Marc Wandscheider写的手册。 我下载了使用它的工具,还下载了括号 我正在尝试一个示例脚本,但我得到了两个错误,它们不理解,并且在指南中不存在 第一个错误告诉我: “require”是在定义之前使用的 但是指南没有使用它——它是必需的吗 如何解决这些问题 完整代码 var http = require("http"); function process_request(req, res) { var body = 'Thanks for

我开始学习Node.js。我买了Marc Wandscheider写的手册。 我下载了使用它的工具,还下载了括号

我正在尝试一个示例脚本,但我得到了两个错误,它们不理解,并且在指南中不存在

第一个错误告诉我:

“require”是在定义之前使用的

但是指南没有使用它——它是必需的吗

如何解决这些问题

完整代码

var http = require("http");

function process_request(req, res) {

    var body = 'Thanks for calling!';
    var content_length = body.length;
        res.writeHead(200, {
            'Content-Length': content_length,
            'Content-Type': 'text/plain'
        });
    res.end(body);
}

var s = http.createServer(process_request);
s.listen(8080);

这些错误实际上是JSHINT过程验证好代码的建议。方括号可能在幕后使用它。 如果您告诉jshint您正在为节点编写,那么require将成为一个全局变量,因此它不会给出该错误。 试着运行这段代码,对一些文章给出一些警告,并给出适当的解释


在编写一个gulp文件时,我在括号中的JSLint窗口中遇到了类似的警告。我就是这样解决的:

Problems×1“require”在定义之前已被使用。

require函数在别处定义,特别是作为Node.js的一部分,因此要解决警告,请在JavaScript文件顶部添加以下内容,将其标记为全局警告:

/* global require */

缺少“使用严格”语句

我通过使用立即调用的函数表达式解决了这个问题:

(function () {
    "use strict";

    // The rest of the code
}());

将其与前面的“var”语句相结合

这一点很简单。而不是

var body = 'Thanks for calling!';
var content_length = body.length;
使用


这通常意味着其他事情正在发生。您应该显示实际的代码。任何人都不应该
process\u request function(req,res)
var process\u request=function(req,res)或
function process\u request(req,res)
?检查您的package.json并尝试首先使用npm install命令安装所需的模块我相信我已经解决了我运行npm npm install-g命令我在第一次运行时发现错误错误:enoint,stat'C:\Users\Marc\AppData\Roaming\npm'创建ritch中指定的文件夹并重新启动npm npm install-g就足够了,尽管有时会出现此错误消息
C:\node>node debug web.js<调试器正在侦听端口5858连接。。。ok break-in timers.js:77 75}76 77函数listOnTimeout(){78 var msecs=this.msecs;79 var list=this;
我不知道为什么尽管括号中仍然给出了这些错误调试JSLint问题×1'require'在定义之前使用过。var http=require(“http”);5缺少'use strict'语句。var body='谢谢您的调用!';6将此语句与前面的'var'语句结合使用。var=CONTENT_LENGTH body.LENGTH;7第5列应为'res',而不是第9列。res.writeHead(第5列应为200,{10'}',而不是第9列。});11第5列的预期“res”,而不是第9列。决议结束(正文);为了解决这个问题,我不得不使用jslint而不是jshint
/* global require */
(function () {
    "use strict";

    // The rest of the code
}());
var body = 'Thanks for calling!';
var content_length = body.length;
var body = 'Thanks for calling!',
    content_length = body.length;