使用Node.js 创建Web 应用与使用PHP/Java 语言创建Web应用略有不同。

使用PHP/Java 来编写后台代码时,需要Apache 或者 Nginx 的HTTP 服务器,而接受请求和提供对应的数据和HTML页面是由服务器来做的,根本不需要PHP或者Java 来做处理,而Node.js则大有不同。

Node.js 没有严格的将前端和后台服务器分离,而且前端使用Node.js来编码,后台部分也依然是使用Node.js来编码,也不需要Apache 或者 Nginx 这样的HTTP 服务器。只需要在终端将关键的后台文件启动即可。

创建第一个Web 应用

在我们创建 Node.js 第一个 “Hello, World!” 应用前,让我们先了解下 Node.js 应用是由哪几部分组成的:

1. 引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。

  1. 创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。

  2. 接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。

学习一门新的语言,肯定少不了要写一个Hello World工程。那我们如何用Node.js来写一个Hello World呢?

1、终端命令学习

首先,我们需要学习一些终端的命令,因为待会的工作都是在终端中执行的。

* 新建文件夹 *

使用 mkdir + 文件夹路径,其中最后一个节点是文件夹的名称 ,示例:

mkdir /Users/harvey/Desktop/Study

这个命令,就是在我的桌面创建一个叫Study的文件夹。

* 进入指定的文件夹 *

cd + 文件夹路径,其中文件夹的路径可以找到文件夹,输入cd 后,将文件夹拖进终端,示例:

bogon:~ harvey$ cd /Users/harvey/Desktop/Study
bogon:Study harvey$

进入文件夹后,文件夹会显示在用户名称前,比如上面的Study 就是文件夹名称。

返回到上一级目录是:cd ..

* 新建一个文件 *

这个命令,使用vim 命令创建比较简单。

只需要 vim + 文件名,如果文件不存在,则会新创建改文件,如果文件已存在,则打开该文件。

vim server.js

输入完上述命令后是这样的:



此时,是vim 的编辑模式,想要在server.js中写入内容需要进入插入模式。

命令是:a



然后就可以输入想要输入的内容了。

我这里输入的是:

var http = require('http');

http.createServer(function (request, response) {

        // 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'}); // 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888); // 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

上面的内容可以复制,粘贴到终端。

* 退出插入模式 *

这里有两种方式:

Esc或者 Ctrl + c都可以退出插入模式。

* 保存并退出 *

退出插入模式后,保存并退出是两个命令合并的。

* 保存 *

:w

* 退出 *

:q

所以,保存并退出是:

:wq

2.运行服务端

node server.js

输入上述命令后,终端会有如下提示:

Server running at http://127.0.0.1:8888/

接下来,打开浏览器访问 http://127.0.0.1:8888/,你会看到一个写着 “Hello World”的网页。



到这里,第一个web 应用就完成了。

关于Node.js 的更多内容,可以去看:Node.js 中文教程

而关于Node.js 的所有API,可以去看:官方文档

Node.js 撸第一个Web应用的更多相关文章

  1. Fenix – 基于 Node.js 的桌面静态 Web 服务器

    Fenix 是一个提供给开发人员使用的简单的桌面静态 Web 服务器,基于 Node.js 开发.您可以同时在上面运行任意数量的项目,特别适合前端开发人员使用. 您可以通过免费的 Node.js 控制 ...

  2. node.js之十大Web框架

    之前接触过Node.js是因为好奇大前端越来越能干了,连我后台的饭碗都要抢了,太嚣张了,于是我想打压打压它,然后就这样接触它了.再到后来是因为Settings-Sync插件二次开发,我需要用node. ...

  3. Koa--基于Node.js平台的下一代web开发框架的安装

    koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架. 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函 ...

  4. Node.js 从零开发 web server博客项目[express重构博客项目]

    web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...

  5. Node.js 从零开发 web server博客项目[koa2重构博客项目]

    web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...

  6. Node.js 从零开发 web server博客项目[安全]

    web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...

  7. Node.js 从零开发 web server博客项目[日志]

    web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...

  8. Node.js结合Selenium做Web自动化测试

    发现腾讯课堂上有个node.js结合Selenium做Web自动化测试的教学视频, 听来感觉不错,一来老师讲的还不错,二来node.js这门语言会越来越热,学会总没什么坏处,三来发现CukeTest这 ...

  9. Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa.bootcss.com

    Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa.bootcss.com

随机推荐

  1. [LeetCode] 2 Keys Keyboard 两键的键盘

    Initially on a notepad only one character 'A' is present. You can perform two operations on this not ...

  2. MySQL 并行复制从库发生自动重启分析

    并行复制从库发生自动重启分析 背景 半同步复制从库在晚上凌晨2点半发生自动重启,另一个异步复制从库在第二天凌晨3点也发生了自动重启. 分析 版本mysql 5.7.16 mysql> show ...

  3. codefroces 55D Beautiful numbers

    [Description] 美丽数是指能被它的每一位非0的数字整除的正整数. [Input] 包含若干组数据,每组数据一行两个数n,m,表示求[n,m]之间的美丽数的个数. [output] 对于每组 ...

  4. [SDOI2005]反素数

    题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6 ...

  5. 【Codeforces 851D Arpa and a list of numbers】

    Arpa的数列要根据GCD变成好数列. ·英文题,述大意:      给出一个长度为n(n<=5000000)的序列,其中的元素a[i]<=106,然后输入两个数x,y(x,y<=1 ...

  6. 基于SSE4和多核编程的电子相册的实现

    基于SSE4和多核编程的电子相册的实现   摘要:电子相册中前后两张图片的切换会产生淡入淡出效果,而且切换过程中需要大量的中间计算过程,而SSE4和多核编程技术能够有效加快中间的计算过程,有效减少图片 ...

  7. SpringBoot 使用MultipartFile上传文件相关问题解决方案

    1.当上传时未配置上传内容大小,会报错[org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException ...

  8. localStorage存储数组以及取数组方法

    var weekArray = ['周一'.'周二'.'周三'.'周四'.'周五']; //存: localStorage.setItem('weekDay',JSON.stringify(weekA ...

  9. redis中密码设置

    先打开redis-server 再打开redis-cli 在redis-cli对redis进行操作 可以通过编辑redis.conf配置文件来设置密码. 1.重启Redis设置密码: 在配置文件中有个 ...

  10. 最小费用最大流(luogu P3381 【模板】最小费用最大流)

    题目链接 题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S. ...