node服务器用法介绍

简介: node服务器用法介绍

先介绍node.js的安装,再介绍使用node.js构建一个简单的web服务器,最后通过一个简单的示例,演示网页与服务器之间的数据交互的实现。

WEB服务器

WEB服务器也称为WWW服务器。WWW(World Wide Web、翻译成中文:万维网或环球信息网)服务器的基本功能就是提供Web信息浏览服务。Web服务器可以向Web浏览器等客户端提供文档,也可以放置网站文件,让全世界浏览,更可以放置数据文件,让全世界下载。

常见的Web服务器软件有Apache、Internet信息服务器(Internet Information Services,IIS)等。

Apache服务器:Apache服务器是一款开源免费的服务器软件,几乎可以在所以有的计算机平台上运行,由于Apache是开源,因此所有人都可以参与开发新功能,并且不断对Apache服务器进行完善。Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页,它是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上(即支持多平台)。其属于应用服务器。

IIS服务器:IIS服务器是微软的服务器,可允许IIS在公共Intranet或Internet上发布相信的Web服务器。IIS只能在微软公司的windows操作系统下使用。

不依赖前面提到的Web服务软件,使用Node.js 也能搭建Web服务器。

Node.js是什么?

简单地说,Node.js 是一种开源且跨平台的服务器端 JavaScript 运行时环境,并可以让 JavaScript 做后端。

在Windows 上安装 Node.js

要使用Node.js 需要安装之。

要使用Node.js 需要安装之。先到nodejs官网 Node.js 或到中文网站下载 | Node.js 中文网 下载

LTS代表“长期支持”,建议大多数用户使用这种版本。我下载的是node-v14.18.1-x64.msi

简单看下代码:
const express = require("express");
const mysql = require("mysql");
let nodemailer = require("nodemailer")
let app = express();

let cors = require("cors");
app.use(cors());

const bodyparser = require("body-parser")
app.use(bodyparser.urlencoded({extended:false}))
app.use(bodyparser.json())

//发送qq邮箱函数
function sendMail(text,receive){

let user = "3534912941@qq.com";//自己的qq邮箱
let pass = "lhgyfafsvtxddbgh";//自己的qq邮箱授权码
let to = "2251084392@qq.com"//目标发送qq邮箱
let transporter = nodemailer.createTransport({
    host:"smtp.qq.com",
    port:587,
    secure:false,
    auth:{
        user:user,
        pass:pass
    }
});
let options={
    from:`${user}`,
        to:`2251084392@qq.com`,
        subject:'测试验证码',
        text:text
};
transporter.sendMail(options,function(err,msg){
    if(err){
        console.log("错误");
    }else{
        console.log(msg);
        transporter.close();
    }
})
// let info =  transporter.sendMail({
//     from:`测试发送验证码${user}`,
//     to:`测试验证码${to}`,
//     subject:'测试验证码',
//     text:text
// })
// console.log(info);

}
// 发送验证码接口
app.post("/emails",(request,response)=>{

let qqEmail  
sendMail("验证码为1235","2251084392@qq.com")

})
//发送验证码接口
// app.use("/emails",function(request,response,next){
// // let qqEmail = request.body.email;
// let qqEmail = "2251084392@qq.com";
// console.log(qqEmail);
// let obj = {
// code:Math.ceil(Math.random()*1000)
// };
// let text = 验证码是${obj.code};
// console.log(text);
// sendMail(text,qqEmail);
// response.end(JSON.stringify(obj));
// next();
// })
//连接数据库
const con = mysql.createConnection({

user:'root',
password:'w123456789',
host:"localhost",
database:'uesreg'

})

//测试连接
// con.connect(err=>{
// // null代表连接成功
// console.log(err);
// })

//注册验证
app.get("/logmessage",(request,response)=>{

let Sqlquery = `SELECT urename FROM reg `
let flg = false;
con.query(Sqlquery,(err,res)=>{
    // res.forEach(element => {
    //     if(request.query.usename==element.urename){
    //         flg = true;
    //         response.send("账号已经存在,换一个吧")
    //         return ;
    //     }
    //     // console.log(element.urename);           
    // });
    for (let i = 0; i < res.length; i++) {
        if(res[i].urename==request.query.usename){
            flg=true;
            response.send("账号已经存在,换一个吧")
            break;
        } 
    }
    if(flg==false){
        let SqlStr = `INSERT INTO reg VALUES(${Number(request.query.usename)},'${request.query.password}','${request.query.email}')`;
       con.query(SqlStr,(err)=>{
           console.log("成功注册");
       })
        response.send(true)
   }
});
// console.log(request.query);
// if(request.query.usename=="123"){
//     response.send("teur")
// }

})
//登录验证
app.post("/logincheck",(request,response)=>{

let Sqlaccount = `SELECT urename FROM reg WHERE urename=${request.body.account}`
con.query(Sqlaccount,(err,res)=>{
    // console.log(res.length);
    if(res.length==0){
        // console.log("没有此账号");
        response.send("没有此账号,请重新登录")
        return;
    }else{
        let Sqlpasword = `SELECT urename FROM reg WHERE urename=${request.body.account} and pasword= '${request.body.code}'`
        con.query(Sqlpasword,(err,res)=>{
            // console.log(res);
            if(res.length!=0){
                // console.log("成功");
                response.send("登录成功")
            }else{
                // console.log("失败");
                response.send("密码错误,请重新输入");
                return ;
            }
        })
    }
})
console.log(request.body);

})
app.listen(5000,()=>{

console.log("5000端口正在监听");

})

目录
相关文章
|
6月前
|
Kubernetes API 网络安全
当node节点kubectl 命令无法连接到 Kubernetes API 服务器
当Node节点上的 `kubectl`无法连接到Kubernetes API服务器时,可以通过以上步骤逐步排查和解决问题。首先确保网络连接正常,验证 `kubeconfig`文件配置正确,检查API服务器和Node节点的状态,最后排除防火墙或网络策略的干扰,并通过重启服务恢复正常连接。通过这些措施,可以有效解决与Kubernetes API服务器通信的常见问题,从而保障集群的正常运行。
429 17
|
10月前
|
JavaScript
使用Node.js创建一个简单的Web服务器
使用Node.js创建一个简单的Web服务器
|
9月前
|
机器学习/深度学习 JavaScript Cloud Native
Node.js作为一种快速、可扩展的服务器端运行时环境
Node.js作为一种快速、可扩展的服务器端运行时环境
171 8
|
10月前
|
JavaScript
使用node.js搭建一个express后端服务器
Express 是 Node.js 的一个库,用于搭建后端服务器。本文将指导你从零开始构建一个简易的 Express 服务器,包括项目初始化、代码编写、服务启动与项目结构优化。通过创建 handler 和 router 文件夹分离路由和处理逻辑,使项目更清晰易维护。最后,通过 Postman 测试确保服务正常运行。
643 1
|
弹性计算 JavaScript 安全
阿里云ECS服务器配置Node环境实践
使用阿里云ECS服务器配置Node环境实践。
721 0
|
27天前
|
存储 缓存 数据挖掘
阿里云目前最便宜云服务器介绍:38元、99元、199元性能,选购攻略参考
轻量应用服务器2核2G峰值200M带宽38元1年;云服务器经济型e实例2核2G3M带宽99元1年;云服务器通用算力型u1实例2核4G5M带宽199元1年。对于还未使用过阿里云服务器的用户来说,大家也不免有些疑虑,这些云服务器性能究竟如何?它们适用于哪些场景?能否满足自己的使用需求呢?接下来,本文将为您全方位介绍这几款云服务器,以供您了解及选择参考。
|
1月前
|
网络安全 云计算
如何设置阿里云轻量应用服务器镜像?
本文介绍了在阿里云轻量应用服务器上创建与配置镜像的详细步骤。镜像是一种特殊的文件系统映射,可用于快速克隆服务器配置。内容涵盖准备条件、登录控制台、创建实例、生成镜像、下载与设置镜像,以及如何使用镜像启动新实例。适合希望提升服务器部署效率的用户参考。
|
1月前
|
存储 弹性计算 安全
阿里云轻量服务器通用型、CPU优化型、多公网IP型、国际型、容量型不同实例区别与选择参考
阿里云轻量应用服务器实例类型分为通用型、CPU优化型、多公网IP型、国际型、容量型,不同规格族的适用场景和特点不同,收费标准也不一样。本文为大家介绍轻量应用服务器通用型、多公网IP型、容量型有何区别?以及选择参考。
|
12天前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
62 0

热门文章

最新文章