Nodejs书籍为何多用express,原生node写的不多吗?

Nodejs书籍为何多用express,原生node写的不多吗?

如题。我学所有的东西,最开始都不会接触库的。不喜欢知其然不知其所意然的感觉。 我在网上也找了不少的书籍,除了一本没有翻译完的《Pro_Nodejs_for_Developers》,其他都是基于express来的。 朴灵大大的《深入浅出NodeJs》,又不太适合入门。 郭家宝同学的Nodejs指南…哎,不说了。 哎,求书… 现在在用自己苦B的英文看Pro_Nodejs_for_Developers,进度很慢。

诸位大神不要说什么重复造轮子之类的话。至少能造个轮子出来,才有资格说这句话吧。

16 回复

标题:Nodejs书籍为何多用express,原生node写的不多吗?

内容:

大家好,我最近在学习Node.js,发现很多Node.js的书籍和教程都倾向于使用Express框架来讲解,而不是直接使用原生Node.js。这让我有些困惑,因为我更希望从零开始理解每个概念和技术细节。不过,我发现大多数书籍,例如《Pro Node.js for Developers》(尽管这本还没翻译完),以及一些知名的书籍如《深入浅出Node.js》和《Node.js指南》,都是基于Express进行讲解的。

为什么会出现这种情况呢?为什么不是每个人都选择从原生Node.js开始呢?

为什么多用Express?

Express是一个轻量级的Web应用框架,它简化了Node.js开发中的许多常见任务,如路由处理、中间件支持和模板引擎集成等。使用Express可以让我们更加专注于业务逻辑的实现,而不是花大量时间在底层细节上。

示例代码

下面是一个简单的Express应用示例:

const express = require('express');
const app = express();

// 设置路由
app.get('/', (req, res) => {
    res.send('Hello World!');
});

// 启动服务器
app.listen(3000, () => {
    console.log('Server is running on http://localhost:3000');
});

这段代码创建了一个简单的HTTP服务器,监听端口3000,并返回"Hello World!"。

原生Node.js是否足够?

虽然原生Node.js提供了更底层的控制,但这也意味着你需要处理更多的细节。例如,处理HTTP请求和响应需要更多手动操作:

const http = require('http');

const server = http.createServer((req, res) => {
    if (req.url === '/') {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('Hello World!');
    } else {
        res.writeHead(404, {'Content-Type': 'text/plain'});
        res.end('Not Found');
    }
});

server.listen(3000, () => {
    console.log('Server is running on http://localhost:3000');
});

这段代码同样实现了HTTP服务器,但需要手动处理请求和响应的细节。

总结

对于初学者来说,使用Express可以更快地构建功能完整的Web应用,从而更好地理解和实践Node.js。而原生Node.js则更适合那些希望深入了解底层机制的人。无论哪种方式,最重要的是找到最适合自己的学习路径,逐步掌握所需的知识。

希望这些信息对你有所帮助!如果你有任何问题或建议,欢迎留言交流!


希望这段内容能帮助你理解为什么Node.js书籍中多使用Express,同时也能让你了解到原生Node.js的应用场景。


为什么一定要用 Node 写… 人家传过来 cookie 和 file, 还有定义路由, 难道想自己写

你当然可以自己写啊,但是这不适合入门,脱离express和koa等等框架,表示你对node玩得很熟了。

感觉这本书挺好的 Mastering Node.js, 讲node的比较多,也适合入门。

为什么要看书呢

深入浅出NodeJs 看过一遍,适合对网站有全景了解的人看,看完就相当于把web前端和webserver层都串了一遍,看以前的web书籍从来没这种感觉,这也许就是nodejs的魅力吧,收获还是比较多的,缺点是没有多少细节,都是论述的方式过去的。

自己摸索,就会很清楚学习路线的,看看源码也是学习的方式,我个人更感觉源码是个好东西,比如connect的源码,真的很赞。P.S.express是很好的东西,TJ大神很牛逼!

俺去找找,多谢~~

难道有视频教程… - -

那既然这样的话,或许你可以换个方式,去适应它。

  1. 先看各种入门书。
  2. 当你有1中的基础了,你再去看 深入浅出node.js 之类的,或者分析框架源码。

前提是,你想精通node.js,而不是想快速上手,就要做好花时间的准备了。

楼主加油,这种事只有写出个来就明白为什么要用express之类的写了, 以前也有过这种类似想法

express只是个MVC框架,跟Node没太大关系,只不过它用js语法来写的。像j2ee的框架有很多,或许入门会推荐struts,但是还有springMVC、webx等这样的。当然会用springMVC也当然会用struts,虽然没学过,但大体都一样。我不清楚楼主工作几年,实力如何,就目前我看到的,如果是学J2EE的,想脱离现有的web MVC,自己造个轮子然后用在业务上,这样的人少之又少。我知道的就是阿里巴巴的宝宝,当时跟马云创业的时候,自己写了webx,并用在了业务上。 当然,我希望楼主是这样的牛人,早日能用到楼主的框架,或者看到一些博文干活。

噢,补充一句,我也仅仅了解了一下express,也不排斥它。不过我自己玩着用的框架是 paypal 的kraken,如果你觉得express满足不了你的新鲜感,可以看一下kraken(不过它目前没有express成熟)

@.@我到是想看更深入的,可是都是教怎么用的。

哎呀,你想多了… 我只是不想依赖于框架啊。 至少得明白框架是如何实现的吧。

express难道就不是node原生写的么?

Node.js书籍倾向于使用Express框架主要有以下几个原因:

  1. 简化开发:Express是一个轻量级且灵活的Web应用框架,它提供了路由、中间件等功能,使得开发者可以更方便地构建Web应用。

  2. 社区支持:Express有着庞大的社区支持,遇到问题时很容易找到解决方案。

  3. 文档完善:Express的文档非常全面,对于初学者来说是非常好的学习资源。

  4. 功能丰富:虽然Express本身是轻量级的,但它可以与各种中间件结合使用,从而实现复杂的功能。

尽管如此,掌握原生Node.js也是非常重要的。理解底层机制有助于更好地利用Express这样的框架,并在需要时对其进行定制或扩展。

示例代码

下面是使用原生Node.js创建一个简单的HTTP服务器的代码:

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/plain');
    res.end('Hello World\n');
});

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

这段代码创建了一个简单的HTTP服务器,监听3000端口,并返回"Hello World"文本。

相比之下,使用Express创建同样的服务器会更加简洁:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
    res.send('Hello World!');
});

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

总结

虽然原生Node.js的学习成本较低,但使用Express可以更快地开发Web应用,尤其是在处理复杂的业务逻辑时。希望这对你有所帮助!

回到顶部