5. Node基础编程
- 基于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基础编程的更多相关文章
- node 异步编程
node 异步编程 我了解到的node异步编程可分成: 1.回调函数 2.pub/sub模式(发布/订阅模式) 3.promise 4.generator 5.async await 一.直接回调函数 ...
- node基础06:回调函数
1.Node异步编程 Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,No ...
- Winsock基础编程
Winsock基础编程 Socket的英文原义是"孔"或"插座".作为BSD UNIX的进程通信机制,取后一种意思.通常也称作"套接字",用 ...
- 6、50道JAVA基础编程练习题跟答案
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...
- 老李分享: 并行计算基础&编程模型与工具 1
老李分享: 并行计算基础&编程模型与工具 在当前计算机应用中,对高速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求: 计算密集(Computer-Intensive)型应用,如 ...
- 【Socket】Java Socket基础编程
Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基 ...
- go基础编程 day-1
Go语言的特性 开启了学习新的语言路程,记录每天学习的笔记,与大家一起分享. ①.自动垃圾回收 ②.更丰富的内置类型 ③.函数多返回值 ④.错误处理 ⑤.匿名函数和闭包 ⑥.类型和接口 ⑦.并发编程 ...
- node基础篇二:模块、路由、全局变量课堂(持续)
今天继续更新node基础篇,今天主要内容是模块.路由和全局变量. 模块这个概念,在很多语言中都有,现在模块开发已经成为了一种潮流,它能够帮助我们节省很多的时间,当然咱们的node自然也不能缺少,看下例 ...
- 简单的TSQL基础编程格式,存储过程,视图
这里简单整理一下数据库简单的编程,变量定义,赋值,分支语句和循环(这里以Sqlserver),以及存储过程格式 首先是变量定义,赋值,分支语句 --======TSQL数据库基础编程,定义变量,赋值, ...
随机推荐
- try/catch的用法
1.try/catch用法基础介绍 try { //程序中抛出异常 throw value; } catch(valuetype v) { //例外处理程序段 } 语法小结:throw抛出值,catc ...
- JAVA学习(一)——基本语法
tips:前端开发写惯了弱类型语言,再来学强类型语言,真的是被各种修饰符.类型声明给整的云里雾里,而且java语法和javascript语言差别还是很大的,所以做好笔记,把一些需要注意的地方记下来是非 ...
- Object-C初体验
前几周,看了书,标记了要Coding的例子.(书是写博客,CSDN送的,也可以用C币买) 周末,来搞几个例子. 2015年春,刚刚买Mac的时候,就搞了1个Object-C的HelloWorld,毕竟 ...
- Maintaining processor resources during architectural events
In one embodiment of the present invention, a method includes switching between a first address spac ...
- 洛谷 P3585 [POI2015]PIE
P3585 [POI2015]PIE 题目描述 一张n*m的方格纸,有些格子需要印成黑色,剩下的格子需要保留白色.你有一个a*b的印章,有些格子是凸起(会沾上墨水)的.你需要判断能否用这个印章印出纸上 ...
- RHEL7.1安装VNC
1.安装包 yum install vnc* -y 2.创建password vncserver 3.创建參数文件 [root@single ~]# cp /lib/systemd/system/vn ...
- 知名游戏开发者称 C++ 是一种非常糟糕、可怕的语言(C++不是一门可怕的语言,可怕的是一群没有耐心的程序员来使用C++这门语言)
抛出一个问题:C++ 真的很可怕吗? 2016 年底,C++ 之父 Bjarne Stroustrup 在一次采访中表示:”C++ 让编程专家很容易编写出复杂.高性能.低资源消耗的代码,但不足以成为广 ...
- actionMode-theme中修改actionmode中more下拉框的背景颜色
今天在做图库修改是,需要修改图库的actionbar某个按钮弹出来的下拉框的背景颜色,在网上找了个方法尝试下,没有打到自己的要求,不过阴差阳错的却修改了more下拉框的背景,再次记录下,也许以后能用的 ...
- RTP 和 RTSP的区别
RTP(Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输协议.RTP被定义为在一对一或一对多的传输情况下工作.其目的是提供时间信息和实现流同 ...
- sql创建外键
建立外键关系:先建主表再见从表:主表:create table zhu(code int parimary key,name varchar(20)) ;从表:create table cong(co ...