不使用express等web框架用Nodejs开发网站难度大不大,有没有这方面的资料啊。

不使用express等web框架用Nodejs开发网站难度大不大,有没有这方面的资料啊。

本人是前端开发程序员,一直没用jqeury ,只用javascript也能开发出网站需要的交互效果。 当然自己写个简单的框架(类似jquery的缩水简单版)也没多大问题。 不用框架是为了锻炼自己的能力,提升自己的技术,从接触编程起就喜欢编程了。

最近学习node.js 基本知识 ,学的差不多了,当我准备学习web开发的时候,在图书馆查了几本node.js的书,网上也查了好多资料都是用框架开发的网站 大部分都是express。 现在我想不借助框架开发web,不知道谁有这方面的资料,还有原生开发困不困难,困难到什么程度。


13 回复

不使用Express等Web框架用Node.js开发网站是完全可行的,虽然可能会比使用框架更复杂一些,但这样做可以让你更深入地理解HTTP协议、请求处理、路由设计等底层概念。下面我将提供一个简单的示例代码,并解释其基本原理。

示例代码

首先,我们需要安装http模块,这是Node.js内置的用于创建HTTP服务器的模块。

# 这里不需要额外安装任何包,因为http模块是Node.js的一部分

接下来,我们可以编写一个简单的HTTP服务器:

// server.js
const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
    // 设置响应头
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/html');
    
    // 路由处理
    if (req.url === '/') {
        res.end('<h1>Hello, Welcome to My Website!</h1>');
    } else if (req.url === '/about') {
        res.end('<h1>About Us</h1>');
    } else {
        res.statusCode = 404;
        res.end('<h1>404 Not Found</h1>');
    }
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

代码解释

  1. 引入http模块:我们通过require('http')引入了Node.js内置的HTTP模块。
  2. 创建服务器:使用http.createServer()方法创建一个HTTP服务器实例。这个方法接受一个回调函数,该函数会在每次接收到HTTP请求时被调用。
  3. 设置响应头:在回调函数中,我们设置了响应的状态码和类型。
  4. 路由处理:根据请求的URL路径,我们使用条件语句来决定返回什么样的内容。如果请求的是根路径/,则显示欢迎信息;如果是/about,则显示关于页面;其他路径则返回404错误。
  5. 监听端口:最后,我们使用server.listen()方法让服务器开始监听指定的端口和地址。

学习资源

  • 官方文档:Node.js官方文档提供了非常详细的API说明,是学习Node.js的最佳资源之一。
  • MDN Web Docs:Mozilla开发者网络上的Node.js教程也非常实用。
  • 书籍:《Node.js设计模式》和《深入浅出Node.js》都是不错的选择,虽然它们可能包含一些框架的内容,但大部分章节都适用于理解Node.js的基本概念。

通过上述示例,你可以看到不使用框架开发Node.js应用是完全可行的,尽管会增加一些手动配置的工作量。希望这些信息对你有所帮助!


不大。不就是写个express connect嘛

express 一点用处也没有。

如果你是初学,只需要connect和formidable这两个模块。 要知道express的作者前几个版本不过是封装connect,然后加了一大堆java思想的“垃圾”。 熟悉http后,可以自己写个connect。

我记得有本Node入门的书就是从头开始逐步构建一个Web框架的

谢谢各位的解答
这方面的资料 我感觉很难查到。 3楼的大神能想起名字吗? 非常需要这样的node.js书

除非你想从头实现一下http协议 不然nginx、apache不是只吃闲饭的了么

bearcat 会事半功倍

吃透协议先

不大,自己都可以写的。只不过express封装的很好用,模块化了

楼上回难度不大的可以去看看这里列出来 express 抽象出来的核心模块里面有多少细节

恩,不大~

还是实践派比较好,LZ的github居然是0

做了这么久了好像没有用过express

不使用Express等Web框架来用Node.js开发网站是完全可行的,但确实会增加一些难度。不过,这能让你更深入地理解HTTP协议、服务器端逻辑以及如何处理各种请求。

难度分析

  1. HTTP协议处理:你需要自己实现解析HTTP请求和响应的能力。
  2. 路由处理:需要手动处理不同URL路径的请求。
  3. 中间件功能:你需要自己编写类似中间件的功能来处理请求和响应。

示例代码

以下是一个简单的例子,展示了如何不使用任何框架来创建一个基本的Web服务器:

const http = require('http');
const url = require('url');

// 创建一个简单的HTTP服务器
const server = http.createServer((req, res) => {
    // 解析请求URL
    const parsedUrl = url.parse(req.url, true);
    const path = parsedUrl.pathname;
    const query = parsedUrl.query;

    // 根据不同的路径进行响应
    switch (path) {
        case '/':
            res.writeHead(200, { 'Content-Type': 'text/html' });
            res.end('<h1>Hello, World!</h1>');
            break;
        case '/about':
            res.writeHead(200, { 'Content-Type': 'text/html' });
            res.end('<h1>About Page</h1>');
            break;
        default:
            res.writeHead(404, { 'Content-Type': 'text/plain' });
            res.end('404 Not Found');
            break;
    }
});

// 监听端口
server.listen(3000, () => {
    console.log('Server running at http://localhost:3000/');
});

资源推荐

这些资源可以帮助你更好地理解和掌握Node.js的基础知识和高级特性,同时提供了一些关于如何不使用框架进行开发的指导。希望这些信息对你有所帮助!

回到顶部