不使用express等web框架用Nodejs开发网站难度大不大,有没有这方面的资料啊。
不使用express等web框架用Nodejs开发网站难度大不大,有没有这方面的资料啊。
本人是前端开发程序员,一直没用jqeury ,只用javascript也能开发出网站需要的交互效果。 当然自己写个简单的框架(类似jquery的缩水简单版)也没多大问题。 不用框架是为了锻炼自己的能力,提升自己的技术,从接触编程起就喜欢编程了。
最近学习node.js 基本知识 ,学的差不多了,当我准备学习web开发的时候,在图书馆查了几本node.js的书,网上也查了好多资料都是用框架开发的网站 大部分都是express。 现在我想不借助框架开发web,不知道谁有这方面的资料,还有原生开发困不困难,困难到什么程度。
不使用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}/`);
});
代码解释
- 引入http模块:我们通过
require('http')
引入了Node.js内置的HTTP模块。 - 创建服务器:使用
http.createServer()
方法创建一个HTTP服务器实例。这个方法接受一个回调函数,该函数会在每次接收到HTTP请求时被调用。 - 设置响应头:在回调函数中,我们设置了响应的状态码和类型。
- 路由处理:根据请求的URL路径,我们使用条件语句来决定返回什么样的内容。如果请求的是根路径
/
,则显示欢迎信息;如果是/about
,则显示关于页面;其他路径则返回404错误。 - 监听端口:最后,我们使用
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框架的
除非你想从头实现一下http协议 不然nginx、apache不是只吃闲饭的了么
用 bearcat 会事半功倍
吃透协议先
不大,自己都可以写的。只不过express封装的很好用,模块化了
楼上回难度不大的可以去看看这里列出来 express 抽象出来的核心模块里面有多少细节
恩,不大~
还是实践派比较好,LZ的github居然是0
做了这么久了好像没有用过express
不使用Express等Web框架来用Node.js开发网站是完全可行的,但确实会增加一些难度。不过,这能让你更深入地理解HTTP协议、服务器端逻辑以及如何处理各种请求。
难度分析
- HTTP协议处理:你需要自己实现解析HTTP请求和响应的能力。
- 路由处理:需要手动处理不同URL路径的请求。
- 中间件功能:你需要自己编写类似中间件的功能来处理请求和响应。
示例代码
以下是一个简单的例子,展示了如何不使用任何框架来创建一个基本的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官方文档:https://nodejs.org/en/docs/
- MDN Web Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Node_js
- Stack Overflow:https://stackoverflow.com/questions/tagged/node.js
- 自由软件基金会书籍:《Node.js设计模式》
这些资源可以帮助你更好地理解和掌握Node.js的基础知识和高级特性,同时提供了一些关于如何不使用框架进行开发的指导。希望这些信息对你有所帮助!