• 基于Chrome V8引擎
  • 单线程
  • 使用JavaScript开发后端代码
  • 非阻塞的IO

common规范

common一定是通过module.exports={}输出

创建Http Server

node demo.js

//文件demo.js
let http=require('http');//调用http模块
let url=require('url');//请求头
let util=require('util'); let server=http.createServer((req,res)=>{
res.statusCode=200;//返回状态码
res.setHeader("Content-Type","text/plain;charset=utf-8");//服务器响应头 console.log(req.url);// /demo.html?a=123 不包含hash console.log(url.parse(req.url));//把url转换为对象 console.log(util.inspect(url.parse(req.url)))//把对象转换为字符串 res.end('hello,node.js');//响应结束输出
}) server.listen(8081,'127.0.0.1',()=>{
console.log('服务器已运行')
})

加载静态页面
http://localhost:8081/login.html node sever.js

//文件sever.js
let http=require('http');//调用http模块
let url=require('url');//请求头
let util=require('util');
let fs=require('fs');//文件系统 let server=http.createServer((req,res)=>{
var pathname=url.parse(req.url).pathname;
fs.readFile(pathname.substring(1),function(err,data){//读取文件,pathname.substring(1)去掉路径前的'/'
if(err){
res.writeHead(404,{
"Content-Type":"text/html"
});
}else{
res.writeHead(200,{
"Content-Type":"text/html"
});
res.write(data.toString());
}
res.end();//响应结束,要放在读取文件的内部
});
}) server.listen(8081,'127.0.0.1',()=>{
console.log('服务器已运行')
})

调用第三方接口

let http = require('http'); //调用http模块
let util=require('util'); http.get('http://www.imooc.com/index/getstarlist', res => {
let data = ''; res.on('data', chunk => {//监听
data += chunk;
}); res.on('end', () => {
let result = JSON.parse(data);
console.log(util.inspect(result));
});
})

Express框架

cnpm i -g express-generator 安装express generator
express --version 检查版本
express server 生成默认项目,在server文件夹内
bin 可执行文件
public 静态资源
routes 路由
views 视图
app.js 入口

node server/bin/www 访问

用webStorm启动
运行 -> 编辑结构 -> +(新添配置) -> js file:"server\bin\www"

pm2 插件启动

$ npm install pm2 -g
$ pm2 start app.js

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

5. Node基础编程的更多相关文章

  1. node 异步编程

    node 异步编程 我了解到的node异步编程可分成: 1.回调函数 2.pub/sub模式(发布/订阅模式) 3.promise 4.generator 5.async await 一.直接回调函数 ...

  2. node基础06:回调函数

    1.Node异步编程 Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,No ...

  3. Winsock基础编程

    Winsock基础编程 Socket的英文原义是"孔"或"插座".作为BSD UNIX的进程通信机制,取后一种意思.通常也称作"套接字",用 ...

  4. 6、50道JAVA基础编程练习题跟答案

    50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...

  5. 老李分享: 并行计算基础&编程模型与工具 1

    老李分享: 并行计算基础&编程模型与工具   在当前计算机应用中,对高速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求: 计算密集(Computer-Intensive)型应用,如 ...

  6. 【Socket】Java Socket基础编程

    Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基 ...

  7. go基础编程 day-1

    Go语言的特性 开启了学习新的语言路程,记录每天学习的笔记,与大家一起分享. ①.自动垃圾回收 ②.更丰富的内置类型 ③.函数多返回值 ④.错误处理 ⑤.匿名函数和闭包 ⑥.类型和接口 ⑦.并发编程 ...

  8. node基础篇二:模块、路由、全局变量课堂(持续)

    今天继续更新node基础篇,今天主要内容是模块.路由和全局变量. 模块这个概念,在很多语言中都有,现在模块开发已经成为了一种潮流,它能够帮助我们节省很多的时间,当然咱们的node自然也不能缺少,看下例 ...

  9. 简单的TSQL基础编程格式,存储过程,视图

    这里简单整理一下数据库简单的编程,变量定义,赋值,分支语句和循环(这里以Sqlserver),以及存储过程格式 首先是变量定义,赋值,分支语句 --======TSQL数据库基础编程,定义变量,赋值, ...

随机推荐

  1. Java基础算法

    i++;++i; i--;--i; int a=5;int b=a++;++放在后面,表示先使用a的值,a再加1b=5,a=a+1,a=6 int c=5;int d=++c;++放在前面,表示先将c ...

  2. Server.UrlEncode与HttpUtility.UrlEncode的区别

    一.HttpUtility.UrlEncode 方法 1.public static string UrlEncode(byte[]) 将字节数组转换为已编码的 URL 字符串. 2.public s ...

  3. Linux常用系统管理软件

    1.BleachBit是一款开源的系统清理工具,它可以释放磁盘空间,保护您的隐私,清除缓存,删除cookies.internet历史.临时文件.日志和丢弃的垃圾文件等,支持清除应用的残留数据,切碎文件 ...

  4. libc.so.6: version GLIBC_2.14 not found

    https://blog.csdn.net/heylun/article/details/78833050

  5. https soap链接示例

    1.先安装soap扩展sudo yum install php-soap 2.安装openssL 3.function  issure($sn){//通过soap链接接口  进行确认是否是正确的sn码 ...

  6. OpenJDK源码研究笔记(十四):三种经典的设计方法,接口,接口-抽象类-具体实现类,接口-具体实现类

    在研究OpenJDK源码过程中,我发现常用的设计方法就是2种:接口,接口-抽象类-具体实现类 . 在一些其它开源框架和业务开发中,经常存在着第3种设计,接口-具体实现类. 1.只有接口,没有实现类. ...

  7. python编程练习

    python练习之冒泡排序: python代码: #coding=utf-8 if __name__=="__main__": arr=[3,2,1,7,11,4,5,8] pri ...

  8. hdoj 1159 Common Subsequence【LCS】【DP】

    Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  9. 阿里云server改动MySQL初始password---Linux学习笔记

    主要方法就是改动 MySQL依照文件以下的my.cnf文件 首先是找到my.cnf文件. # find / -name "my.cnf" # cd /etc 接下来最好是先备份my ...

  10. java对象和json数据转换实现方式1-使用json-lib实现

    測试代码: package com.yanek.util.json; import java.util.ArrayList; import java.util.List; import net.sf. ...