日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

node02

發布時間:2025/6/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 node02 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、使用已有的知識實現一個簡單的登錄和注冊的界面

請求有請求接口有請求頁面的,我們需要加以區分

以下是客戶端代碼

<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title> </head> <script src="./ajax.js"></script><body>用戶名:<input type="text" name="" id="user"><br />密碼:<input type="passsword" name="" id="pwd"><input type="button" value="注冊" id="register"><input type="button" value="登錄" id="login"></body> <script>window.onload = function () {let user = document.getElementById('user')let pwd = document.getElementById('pwd')let reg = document.getElementById('register')let log = document.getElementById('login')reg.onclick = function () {ajax({url: '/user',data: { act: 'reg', user: user.value, pwd: pwd.value },type: 'get',success(str) {let json = eval('(' + str + ')')if (json.ok) {alert('注冊成功')} else {alert('注冊失敗' + json.msg)}},error() {alert('sth is wrong')}})}log.onclick = function () {ajax({url: '/user',data: { act: 'reg', user: user.value, pwd: pwd.value },type: 'get',success(str) {let json = eval('(' + str + ')')if (json.ok) {alert('登錄成功')} else {alert('登錄失敗' + json.msg)}},error() {alert('sth is wrong')}})}}</script></html>

以下是服務端代碼

const http = require('http'); const fs = require('fs'); const querystring = require('querystring'); const urlLib = require('url');var users = {}; //{"blue": "123456", "zhangsan": "123456", "lisi": "321321"}var server = http.createServer(function (req, res) {//解析數據var str = '';req.on('data', function (data) {str += data;});req.on('end', function () {var obj = urlLib.parse(req.url, true);const url = obj.pathname;const GET = obj.query;const POST = querystring.parse(str);//區分——接口、文件if (url == '/user') { //接口switch (GET.act) {case 'reg'://1.檢查用戶名是否已經有了if (users[GET.user]) {res.write('{"ok": false, "msg": "此用戶已存在"}');} else {//2.插入usersusers[GET.user] = GET.pass;res.write('{"ok": true, "msg": "注冊成功"}');}break;case 'login'://1.檢查用戶是否存在if (users[GET.user] == null) {res.write('{"ok": false, "msg": "此用戶不存在"}');//2.檢查用戶密碼} else if (users[GET.user] != GET.pass) {res.write('{"ok": false, "msg": "用戶名或密碼有誤"}');} else {res.write('{"ok": true, "msg": "登錄成功"}');}break;default:res.write('{"ok": false, "msg": "未知的act"}');}res.end();} else { //文件//讀取文件var file_name = './www' + url;fs.readFile(file_name, function (err, data) {if (err) {res.write('404');} else {console.log(file_name)res.write(data);}res.end();});}}); });server.listen(8080);

?

3、模塊化

1)系統模塊:

Assert:斷言

Buffer:

cluster:進程群

crypto:加密

DNS

Errors

Events(重點)用于模擬事件

Path 路徑功能

2)使用模塊導出功能:

//當前目錄必須使用./ let a = 28 exports.a = a //使用時 const mod = require('./mod.js') console.log(mod.a)

3)node中不存在全局變量,聲明的變量僅在模塊內有效

module.exports=exports

可用于批量輸出一個對象

module.exports={a:12,b:58}

引入時.js可以省略

?

4)npm nodejs包管理器

統一下載途徑

自動下載依賴

提交自定義模塊

?

npm uninstall xx 卸載

在node_modules文件夾內的依賴引入可以不用加./

因為系統會自動到node_modules深度遍歷模塊

先查找系統模塊,再查找node_modules

?

5)上傳自己的模塊

npm login //進行登錄

npm init -y //簡單地初始化

npm publish //進行發布,不能發布同一版本號的

npm --force unpulish 對已發布的包進行強制刪除

?

4、express框架

1)安裝

使用npm安裝即可

2)使用express構造服務器

const express = require('express')let server = express() server.use('/a.html', function (req, res) {//已經不是原生的req,res對象了,經過了express封裝res.send('這是A網頁')//發送響應res.end() })//兩個參數,請求路徑及回調 server.use('/b.html', function (req, res) {res.send('這是B網頁')res.end() })//兩個參數,路徑及回調 server.listen(8080, () => console.log('server is running'))

send與write的區別:

send可以發送一個json 對象,write只能發送一個字符串或Buffer對象

express保留了原生的功能,添加了一些新特性

?

3)3種接收用戶請求的新方法

use是get/post都可以接收

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title> </head> <body><form action="http://localhost:8080" method="post">user: <input type="text" name="user"><input type="submit" value="submit"></form> </body> </html>

//server.js const express = require('express')
let server = express() server.get('/',function(req,res){ console.log('get!!!!!!!!!!!') }) server.post('/',function(req,res){ console.log('post!!!!!!!!!!!') })
server.listen(8080, () => console.log('server is running'))

?

4)用express來改寫登錄與注冊

//express-static中間件的使用
const express = require('express') const es=require('express-static')let server = express()//請求a.html,借助express的插件express-static來完成 //它將幫助我們讀取靜態文件 server.use(es('./www'))//參數是一個函數,函數內的參數是一個路徑,它將根據 //請求參數中的文件名自動地返回相應的文件 server.listen(8080, () => console.log('server is running')) const express = require('express') const es=require('express-static')let server = express()//假數據 let users={"cc":"123","ee":"456" }server.get('/login',function(req,res){ //提取參數內容 req.query即可 let user=req.query['user'] let pwd=req.query['pwd']//登錄功能 if(!users[user]){res.send({"ok":false,msg:"user not found"}) }else if(users[user]!==pwd){res.send({"ok":false,msg:"incorrect pwd"}) }else{res.send({"ok":true,msg:"success login"}) } })server.use(es('./www'))server.listen(8080, () => console.log('server is running'))<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title> </head> <script src="./ajax.js"></script><body>用戶名:<input type="text" name="" id="user"><br />密碼:<input type="passsword" name="" id="pwd"><input type="button" value="注冊" id="register"><input type="button" value="登錄" id="login"></body> <script>window.onload = function () {let user = document.getElementById('user')let pwd = document.getElementById('pwd')let reg = document.getElementById('register')let log = document.getElementById('login')log.onclick = function () {ajax({url: '/login',data: { user: user.value, pwd: pwd.value },type: 'get',success(str) {let json = eval('(' + str + ')')if (json.ok) {alert('登錄成功')} else {alert('登錄失敗' + json.msg)}},error() {alert('sth is wrong')}})}}</script></html>

?

轉載于:https://www.cnblogs.com/Tanqurey/p/10773668.html

總結

以上是生活随笔為你收集整理的node02的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。