如何开始Nodejs学习

如何开始Nodejs学习

我java/j2EE七年,SSH很熟悉了,写代码,带项目,做架构,都做过。

现在的新项目,需要用nodeJs,从来没用过,但是javascirpt,Ajax, json。。都用过的

哪位高手给介绍下,如何学习nodejs,我需要快速入门并上手。实际项目里,用什么MVC的NodeJs框架呢?

还有,客户要求了个ScuttleButt的框架,应该是类似于Express的,但是我都没用过。

谢谢了,求指教。

9 回复

如何开始Node.js学习

如果你已经有Java/J2EE七年的工作经验,并且对SSH(Struts, Spring, Hibernate)非常熟悉,那么你已经具备了良好的编程基础。现在你面对的是一个新的挑战——Node.js。尽管你没有使用过Node.js,但你已经熟悉JavaScript、Ajax和JSON等技术,这将大大有助于你快速上手。

1. Node.js基础

什么是Node.js?

  • Node.js 是一个基于 Chrome V8 JavaScript 引擎的 JavaScript 运行环境。它允许你在服务器端运行 JavaScript。
  • Node.js 的核心优势在于其非阻塞 I/O 模型,这使得它可以处理大量并发连接而不会阻塞。

安装Node.js

# 在命令行中运行以下命令来安装Node.js
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
nvm install node

2. 快速入门

Hello World 示例

// 创建一个简单的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}/`);
});

运行代码

node hello-world.js

3. MVC框架选择

Node.js 社区中有许多流行的MVC框架,如 Express 和 Koa。其中,Express是最受欢迎的之一,它简单易用,文档齐全,社区活跃。

Express 示例

# 安装Express
npm install express

# 创建一个简单的Express应用
const express = require('express');
const app = express();

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

app.listen(3000, () => {
  console.log('App listening on port 3000!');
});

运行代码

node express-app.js

4. Scuttlebutt 框架

Scuttlebutt 并不是一个广泛使用的框架,可能是你误记了名称。如果你指的是 Socket.IO 或类似的实时通信库,你可以查阅官方文档进行学习。

Socket.IO 示例

# 安装Socket.IO
npm install socket.io

# 创建一个简单的Socket.IO应用
const io = require('socket.io')(3000);

io.on('connection', (socket) => {
  console.log('a user connected');
  
  socket.on('disconnect', () => {
    console.log('user disconnected');
  });
});

运行代码

node socket-io-app.js

希望这些示例能帮助你快速上手Node.js!祝你学习顺利!


我也曾java过,不,还在java中,所以发点体会FYR谈不上指教。我觉得和写ssh最大的不同是node里涉及异步和事件的代码。我用的express,觉得无论是url映射还是http报文到语言对象它的转换更自然,比struts那些罗嗦的form&action配置要简洁不少,express对请求链式的处理方式和jee的filter也同理,但web相关的东西本质都在http上,这些异同和事件机制相比还是差远了,我甚至觉得和写ejs就和写jsp差不多,都是代码标签混搭款,所以搭建项目骨架之余花点时间在node事件驱动机制,上github看看别人怎么处理一堆回调中的回调,最后选好个事件处理框架并给团队约定好写法是很值得的。最后,我不懂上就去https://github.com/cnodejs/nodeclub看代码。

ScuttleButt 说自己是 A base-class for real-time replication. 没看懂。

https://github.com/dominictarr/scuttlebutt

很奇怪选择 ScuttleButt,用的人不多。不象是做网站的。

web开发的本质都差不多,最重要的是从java这种静态语言、多线程、同步机制转化为nodejs这种单线程、异步事件机制的动态语言,写多了javascript,就会发现异步写起来还是很爽的。祝君好运……

真诚的感谢各位的指教。 我看了下node。js的东西,感觉入门是不太慢,毕竟还是js,目前对很多模块,什么功能不清晰,估计需要api的研究了 跟客户沟通了下,这个人指定ScubbteButt,而且除了https://github.com/dominictarr/scuttlebutt,其它地方啥也找不到 Leapon, 谢谢你给的链接,这里怎么看啊,我从哪儿入手研究这个框架呢? 还有,API哪儿呢?是不是我从index.js,直接开始看代码?有没有一个文档的,告诉我scuttlebutt的整个框架,结构,模块的功能?

当然可以。如果你已经有Java/J2EE的经验,并且对JavaScript、Ajax和JSON比较熟悉,那么学习Node.js会相对容易一些。以下是一些快速入门的建议,以及一个简单的示例代码。

如何开始学习Node.js

  1. 了解Node.js的基础

    • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。它可以让开发者使用 JavaScript 来编写服务器端的应用。
    • 掌握Node.js的基本语法和异步编程模型是关键。
  2. 安装Node.js

    • 访问 Node.js 官网 下载适合你的操作系统的版本并安装。
  3. 创建第一个Node.js应用

    • 创建一个简单的HTTP服务器来理解基本概念。你可以使用内置的 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}/`);
});
  1. 学习MVC框架

    • 对于快速开发,可以考虑使用流行的Node.js MVC框架,如 Express。Express 是一个简洁而灵活的 Web 应用框架,提供了一套强大的功能来处理 HTTP 请求。
    npm install express
    

    然后创建一个简单的Express应用:

    const express = require('express');
    const app = express();
    const port = 3000;
    
    app.get('/', (req, res) => {
      res.send('Hello World!');
    });
    
    app.listen(port, () => {
      console.log(`App listening at http://localhost:${port}`);
    });
    
  2. 学习 ScuttleButt 框架

    • 如果客户要求使用ScuttleButt框架,首先查看其文档和示例代码。从基础的API和组件开始学习。
  3. 多实践

    • 实践是掌握新技能的最佳方式。可以从小项目开始,例如一个待办事项列表或博客系统。

希望这些建议能帮助你快速入门Node.js,并在实际项目中使用合适的框架。

回到顶部