node

本文介绍了Node.js的基本概念,强调其在服务器端的高效执行,特别是通过单线程、非阻塞IO和事件驱动的特性,以及它在高IO场景下的应用,如考试系统、图文直播和站内信。还讲解了Express框架的使用和路由配置,以及如何处理跨域问题。
摘要由CSDN通过智能技术生成

什么是Node?

是javascript的一个运行环境 它可以让javascript运行在服务器端(因为Node可以运行在服务器端)它是基于chromev8 引擎的

node的定义:node是一个后端语言,他完成了很多js不能完成的事情 比如js没有办法直接去读取本地计算机硬盘上的内容

Node的特性:以下三点特性,会让node执行的特别快!!

一、单线程 单线程可以尽可能少的减少IO的操作(io就是输入输出)
二、非阻塞式IO (I/O 输入/输出)
三、事件驱动(提高效率)

Node适用于哪些程序

适用于高IO的程序

(一)、考试系统
(二)、图文直播
(三)、站内信

express

是一个基于Node的库 里面封装了很多有用的api 可以快速让我们完成网站后台的搭建
下载 npm install --save express

路由

一、根据url的不同调用不同的后台功能模块 搭建后台功能要用到 express的Router功能
二、要用到 express的Router功能

代码中应用,
新建文件夹。(node)
一、配置文件
(一)、npm init -y
(二)npm install --save express
二、划分文件
在新建文件下建 server.js (所有路由的老大,最后每个页面请求暴露的会在这个文件夹导入,代码如下:),再在node下建立文件夹 router ,在文件夹建立每个页面相对应的文件夹。如:login.js(登陆),zhuce.js(注册),shouye.js(首页)。。。。。。等文件夹
在这些页面示例配置如下代码

 //第一步,引入下载的模块,express
 let express = require("express")
 //要引入路由,express.Router() 引入路由
 var router = express.Router()
 
 // 首页轮播图的    http://localhost:8888/home/lujing/lunbo    /home先进入home 然后是 /lujing/lunbo  以下同理
 router.get("/lujing/lunbo",(req,res)=>{
      res.send({msg:"我是轮播图的接口"})
 })


  // 首页轮列表的
  router.get("/lujing/liebiao",(req,res)=>{
    res.send({msg:"我是轮播图列表的接口"})
})


 // 首页轮秒杀的
 router.get("/lujing/miaosha",(req,res)=>{
    res.send({msg:"我是轮播图的秒杀 接口"})
})


// 完成后上面的路由配置,然后暴露出去
module.exports = router
// 首页的路由配置完毕并且暴露以后,在server.js 中引入

在server.js 的文件的示例代码如下:

let express = require("express")
var server = express()
//server 是所有的路由结合的文件,所以要引用其他文件中配置暴露出来的路由
// 例如:引入 编辑好的首页配置的路由
var home = require("./router/home")


// 最后使用这些路由, 在每次进入的时候会先进入中间件
// 中间件 代码  server.use('路径',内容)
server.use("/home",home)




// 最后监听
server.listen(8888)

在浏览器中打开! 注意地址栏
在这里插入图片描述

以上只是在node中检查 是否得到请求结果,但是如果是前端发送请求的话,会出现跨域

解决跨域、

在这里插入图片描述
上上图是前后交互出现跨域的解决发法,现在是用node写的,所以用第二种方法解决

var express = require('express');
var app = express();
//设置跨域访问
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1')
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});
 
app.get('/auth/:id/:password', function(req, res) {
    res.send({id:req.params.id, name: req.params.password});
});
 
app.listen(3000);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值