node.js简述 node.js的作用
qiyuwang 2024-10-31 15:52 20 浏览 0 评论
1. 什么是nodejs
他是一个后台管理程序,就类似于 PHP 、 Java 等的后端语言,但是他是轻量的。
说白了 Nodejs 就是运行在服务端的 JavaScript
nodejs是一个时间驱动 I/O 服务端 javascript 环境,基于 Google 的 V8 引擎,V8 引执行JavaScript 的速度快,性能好
2. 它提供的服务
数据服务
文件服务
web服务
3. 他的优势、劣势
优势:
性能高,方便
入门难度低
大公司都在用(BAT)
劣势:
服务器提供的相对较少
相对其他语言,能用的上的学习资料少
对程序员要求高
安装nodemon方法
需要先去官网下载安装包:Nodejs官方网站
选择适合自己的系统位数进行下载
1.全局安装
npm install nodemon -g
2.检查是否安装成功
查看安装的版本
nodemon -v
注意事项:
nodemon 命令只在运行服务的代码去使用,就是写完代码一保存,在浏览器实时刷新的那种
有的时候 cmd 窗口会卡顿,写完代码保存后没有新命令提示,只需要在小黑框内多敲几次回车就好了
在终端里输入 nodemon + 文件名称
或者 node + 文件名称
(列:nodemon node.html)
nodejs 操作
使用 nodejs 中 http 模块来搭建一个 web 服务流程
引入 http 模块(内置模块)
const http = require(“http”)
调用 http crateServer 方法来创建服务
//createServer : 接收的函数,是一个回调函数,当服务器启动后,浏览器访问时代码就会进入到这个函数中
//req :就是 request 的缩写,代表对象,所以他的含义就是 请求对象
//res :就是 response 的缩写,也是代表对象,但是他的含义是 响应对象
const server = http.createServer(function(req,res){
//要设置响应头,否则会出现中文乱码问题
res.writeHead(200,{
"content-Type":"text/html; ccahrset=utf-8"
})
//hello 就是响应出来的内容
//这里面可以直接输入 HTML格式 内容
res.write("hello");
//注:请求需要结束的,要不结束响应,浏览器会一直转圈圈的
res.end();
//监听电脑的某个端口 nodemon
server.listen(3000, function(){
console.log("服务器启动,端口是 3000")
})
})
//注意:定义端口号要从 3000 开始往上
好了,上面就是一套简易的nodejs操作流程了
fs模块:处理文件相关操作,读文件、写文件
fs.readFileSync('要被读取的内容')
列:
通过 fs.readFileSync()去读取另一个文件的内容(另一个文件名列为 :day01 / index.html)
cosnt fileData = fs.readFileSync(./day01 / index.html)
再把读取出来的内容作为 res.write()的参数
代码格式为:res.write(fileData)
//引入 fs 模块
const fs require("fs")
const server = http.createSercer((req,res) => {
//去读取 day01 文件夹下的 index.html 文件
cosnt fileData = fs.readFileSync(./day01/index.html)
//最后输出那个文件里面的内容
consol.log(fileData.toString);
//注:因为在终端输入出的是二进制模式,所以通过 .toString 这个方法给他转成字符串(仅演示)
//注意:千万不要忘了终止,博主当初没少在这大意,然后就看着它一直转圈圈,跟死循环一样了
})
注:不管是任何的网络请求 HTML 、css 都会到这个回调函数内部
判断当前请求的 url
// 这个啥双引号内的 / 代表http://locahost/3000,没有路径时用 req.url 就是 /
if(req.url === "/"){
const fileDate = fs.readFileSync("vacode/day01.js");
req.write(fileDate);
//终止
res.end()
//如果不能继续往下判断直接return返回
return
}
各种文件的响应头
HTML文件:‘Content-Type’: ‘text/html; cahrset= +utf-8’
CSS文件:‘Content-Type’: ‘text/css’
JS文件:‘Content-Type’: ‘text/javascript’
img 的 jpg 文件:‘Content-Type’: ‘imge/jpeg’
请求方式
get 请求
post 请求
put 请求
delete 请求
patch 请求
copy 请求
head 请求
options 请求
link 请求
UNlink 请求
purge 请求
lock 请求
unlock 请求
propfind 请求
view 请求
虽然列出了这么多,但是常用的就是 get、post、 put 、delete请求
get 请求
get请求的参数是携带在请求地址上的
在浏览器地址栏中访问的都是get请求
post请求
post请求都是借助请求模拟工具
这里推荐postman(postman官方下载地址)
里面有各种各样的请求,大家都可以试试
模块化
模块就是一个实现特定功能的文件
优点:
避免变量污染
提供代码复用性
提高代码的可维护性
依赖关系清晰
规范:
nodejs - commonjs规范
requirejs - AMD规范
seajs - CMD规范
每一个 nodejs 文件都有一个 module 变量,代表着这个模块
console.log(module)
module.exports这个属性默认是一个对象,我们引入某个模块文件,其实就是引入的这个文件的 module.exports 对象
给它添加一些属性
列:module.exports,name = “张三”
引入一个模块,列:文件名为 day01.js,引入的其实就是它的 module.exports
const M01 = require("./day01.js")
exports
每一个模块文件 ,其实还有一个 exports 变量,他默认指向 module.exports
可以理解为,每个文件的开头,其实有如下一行代码
var exports = module.exports
要暴露接口给调用者使用,可以直接在 exports 身上添加属性
如果要当前模块的某些内容给到调用者去使用,就需要暴露
module.exports = {
a:a,
b:b,
c:c
}
exports.a=a
exports.b=b
exports.c=c
** 如果直接对 exports 赋值,那么就不需要暴露了
原因是切掉了 exports 与 module.exports 之间的联系**
exports = {
a: a,
b: b
}
console.log("wo shi 05")
路径
绝对路径:
require(“c:/第一层文件夹 / 第二层文件夹 / 文件”)
相对路径:
require("./文件")
引入 nodejs 核心模块或通过 npm 在当前项目中安装的目录
console.log(require(“jquery/bower.json”))
没有写后缀时,会自动按照 .js 、.json 、 .node 的后缀顺序去查找模块
var a = requier("./common/a")
注:require 路径是有一个文件夹时,默认会找这个文件夹下的 package.json 文件中的 main 属性定义的值。加载的模块就是 main 属性定义的文件。如果这个文件夹下没有 package.json 文件,那么会需要 index.js、index.json、index.node
欢迎诸位检查批评!!!
相关推荐
- 基于Docker方式安装与部署Camunda流程引擎
-
1Camunda简介官网:https://docs.camunda.org/manual/7.19/installation/docker/Camunda是一个轻量级、开源且高度灵活的工作流和决策自...
- 宝塔Linux面板如何部署Java项目?(宝塔面板 linux)
-
通过宝塔面板部署Java还是很方便的,至少不需要自己输入tomcat之类的安装命令了。在部署java项目前,我还是先说下目前的系统环境,如果和我的系统环境不一样,导致部署不成功,那你可能需要去找其他资...
- 浪潮服务器如何用IPMI安装Linux系统
-
【注意事项】此处以浪潮服务器为例进行演示所需使用的软件:Chrome浏览器个人PC中需要预先安装java,推荐使用jdk-8u181-windows-x64.exe【操作步骤】1、在服务器的BIOS中...
- Centos7环境Hadoop3集群搭建(hadoop集群环境搭建实验报告)
-
由于项目需要存储历史业务数据,经过评估数据量会达到100亿以上,在原有mongodb集群和ES集群基础上,需要搭建Hbase集群进行调研,所以首先总结一下Hadoop集群的搭建过程。一、三个节点的集群...
- Hadoop高可用集群搭建及API调用(hadoop高可用原理)
-
NameNodeHA背景在Hadoop1中NameNode存在一个单点故障问题,如果NameNode所在的机器发生故障,整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNo...
- 使用Wordpress搭建一个属于自己的网站
-
现在开源的博客很多,但是考虑到wordpress对网站的seo做的很好,插件也多。并且全世界流量排名前1000万的网站有33.4%是用Wordpress搭建的!所以尝试用Wordpress搭建一个网站...
- Centos 安装 Jenkins(centos 安装ssh)
-
1、Java安装查看系统是否已安装Javayumlistinstalled|grepjava...
- Java教程:gitlab-使用入门(java中的git)
-
1导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作...
- Dockerfile部署Java项目(docker部署java应用)
-
1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...
- 如何在Eclipse中搭建Zabbix源码的调试和开发环境
-
Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...
- Java路径-02-Java环境配置(java环境搭建及配置教程)
-
1Window环境配置1.1下载...
- 35.Centos中安装python和web.py框架
-
文章目录前言1.Centos7python:2.Centos8python:3.进行下载web.py框架然后应用:4.安装好之后进行验证:5.总结:前言...
- 《我的世界》服务器搭建(我的世界服务器如何搭建)
-
1.CentOS7环境1.1更改YUM源#下载YUM源文件curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com...
- CentOS 7 升级 GCC 版本(centos7.4升级7.5)
-
1.GCC工具介绍GCC编译器:...
- Linux安装Nginx详细教程(linux安装配置nginx)
-
环境准备1.因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。命令:yuminstallgcc-c++显示完毕,表示安装完成:2.Nginx的http模块需要...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 基于Docker方式安装与部署Camunda流程引擎
- 宝塔Linux面板如何部署Java项目?(宝塔面板 linux)
- 浪潮服务器如何用IPMI安装Linux系统
- Centos7环境Hadoop3集群搭建(hadoop集群环境搭建实验报告)
- Hadoop高可用集群搭建及API调用(hadoop高可用原理)
- 使用Wordpress搭建一个属于自己的网站
- Centos 安装 Jenkins(centos 安装ssh)
- Java教程:gitlab-使用入门(java中的git)
- Dockerfile部署Java项目(docker部署java应用)
- 如何在Eclipse中搭建Zabbix源码的调试和开发环境
- 标签列表
-
- navicat无法连接mysql服务器 (65)
- 下横线怎么打 (71)
- flash插件怎么安装 (60)
- lol体验服怎么进 (66)
- ae插件怎么安装 (62)
- yum卸载 (75)
- .key文件 (63)
- cad一打开就致命错误是怎么回事 (61)
- rpm文件怎么安装 (66)
- linux取消挂载 (81)
- ie代理配置错误 (61)
- ajax error (67)
- centos7 重启网络 (67)
- centos6下载 (58)
- mysql 外网访问权限 (69)
- centos查看内核版本 (61)
- ps错误16 (66)
- nodejs读取json文件 (64)
- centos7 1810 (59)
- 加载com加载项时运行错误 (67)
- php打乱数组顺序 (68)
- cad安装失败怎么解决 (58)
- 因文件头错误而不能打开怎么解决 (68)
- js判断字符串为空 (62)
- centos查看端口 (64)