Nodejs中var http = require("url") 出错了 ,求指点!(找到原因了.关贴!)

Nodejs中var http = require(“url”) 出错了 ,求指点!(找到原因了.关贴!)

初学者,按照例子敲的, http://www.nodebeginner.org/index-zh-cn.html 这个里面的例子.

var http = require(“http”); 而 var url = require(“url”);

function start() { function onRequest(request, response) { var pathname = url.parse(request.url).pathname; console.log(“Request for " + pathname + " received.”); response.writeHead(200, {“Content-Type”: “text/plain”}); response.write(“Hello World”); response.end(); }

http.createServer(onRequest).listen(8888); console.log(“Server has started.”); }

exports.start = start;

而 var url = require(“url”); 这句话出错… node.js没url这个模块? 难道这个url是自定义的模块? 还是新版本没url这个模块了?

求指点一二. 谢谢啊


3 回复

根据你提供的信息,你在尝试使用 Node.js 的 httpurl 模块时遇到了问题。具体来说,你将 require("http") 错误地写成了 require("url")。这是导致错误的主要原因。

让我们来修正这个问题,并提供一个正确的示例代码。

正确的代码

// 引入 http 和 url 模块
var http = require('http');
var url = require('url');

// 定义一个处理请求的函数
function onRequest(request, response) {
    // 解析请求的 URL
    var pathname = url.parse(request.url).pathname;

    // 打印日志
    console.log('Request for ' + pathname + ' received.');

    // 设置响应头
    response.writeHead(200, {"Content-Type": "text/plain"});

    // 发送响应数据
    response.write('Hello World');

    // 结束响应
    response.end();
}

// 创建服务器并监听端口 8888
http.createServer(onRequest).listen(8888);

// 打印启动信息
console.log('Server has started.');

问题分析

  1. 引入模块:你需要正确引入 Node.js 提供的标准库模块。

    • http 模块用于创建 HTTP 服务器。
    • url 模块用于解析 URL 字符串。
  2. 语法错误:你原本的代码中,require 的参数被错误地写成 "url",这实际上应该引用 http 模块。

  3. 解析 URL:使用 url.parse 方法来解析请求中的 URL 字符串。

  4. 发送响应:使用 response.writeHead 方法设置响应头,response.write 方法发送响应体,最后使用 response.end 方法结束响应。

通过以上修正,你应该可以成功运行这段代码,并创建一个简单的 HTTP 服务器。希望这些解释和示例代码能帮助你解决问题。


我参数写错了…关贴…!

在你的代码中,require("url")require("http") 的使用出现了混淆。url 模块确实存在,并且用于处理 URL 字符串。而 http 模块则是用于创建 HTTP 服务器和客户端。

根据你提供的代码片段,以下是修正后的代码:

// 正确引入http模块
var http = require('http');

// 引入url模块
var url = require('url');

function start() {
    function onRequest(request, response) {
        // 使用url模块解析请求URL
        var pathname = url.parse(request.url).pathname;
        console.log('Request for ' + pathname + ' received.');
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write('Hello World');
        response.end();
    }

    // 创建HTTP服务器
    http.createServer(onRequest).listen(8888);
    console.log('Server has started.');
}

exports.start = start;

解释

  1. 引入模块:你需要分别引入 httpurl 模块。
  2. 解析URL:使用 url.parse(request.url) 来解析请求中的 URL。
  3. 创建HTTP服务器:使用 http.createServer(onRequest) 创建一个 HTTP 服务器,并将其绑定到端口 8888。

这样,你就可以正确地运行你的 Node.js 程序了。确保你没有拼写错误,并且所有模块都已正确定义和引入。

回到顶部