nodeJs
本文件已定稿,最后修改时间 20240719 2:52
一、开发环境搭建
commonJs(模块化)
规范定义:
- 每一个文件都是一个模块,都有自己的作用域
- 在模块内部,module变量代表自身
module.exports
提供对外接口
require
语法:- / 代表绝对路径,./ 代表相对路径
- 默认后缀:js json node
require('http')
—— node_modules
global
global.test = 111;
二、npm
cnpm
cnpm install 包名 -g
:全局cnpm install 包名 -S
:局部,生产环境cnpm install 包名 -D
:局部,开发环境
上传自己的包
npm官网注册一个账号
初始化项目
npm init
|cnpm init
npm登录
npm login
输入:userName + 邮箱 + 密码
上传npm包
npm publish
package
package.json:项目的描述文件
三、http服务器
get请求url数据操作
// server.js
const server = require("http");
const url = require("url");
const server = http.createServer((req,res)=>{
const reqUrl = req.url;
console.log(url.parse(reqUrl,true).query.title)
res.end();
})
server.listen(8080);<!--index.html-->
<html>
<head>
<title></title>
</head>
<body>
<a href="http://localhost:8080/content.html?id=2&title=这是文章标题">进入详情页</a>
</body>
</html>get请求表单数据操作
// server.js
const http = require("http");
const url = require("url");
const server = http.createServer((req,res)=>{
res.writeHead(200,{"Content-Type":"text/html;charset=utf8"})
const reqUrl = req.url;
const formVal = url.parse(reqUrl,true).query;
console.log(formVal.userName,formVal.userPwd);
res.end("用户名:"+formVal.userName+"----->"+"密码:"+formVal.userPwd);
})
server.listen(8080);
<html>
<head>
<title></title>
</head>
<body>
<form method="get" action='http://localhost:8080'>
<input type="text" name="userName">
<input type="password" name="userPwd">
<input type="submit" value="登录">
</form>
</body>
</html>post请求表单数据操作
post —— 事件接收
req.on('data')
: 每次发送的数据req.on('end')
: 数据发送完成const http = require("http");
const querystring = require('querystring');
const server = http.createServer((req,res)=>{
let postVal = "";
req.on("data",(chunk)=>{
postVal+=chunk;
})
req.on("end",()=>{
console.log( querystring.parse(postVal) )
res.end();
})
})
server.listen(8080);
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="http://localhost:8080">
<input type="text" name="userName">
<input type="password" name="userPwd">
<input type="submit" value="登录">
</form>
</body>
</html>
四、Mysql
node连接mysql
const mysql = ewquire('mysql');
const connection = mysql.createConnection({
host:"localhost",
port:3306,
user:"root",
password:"密码",
database:"数据库名字"
})
connection.connect();
connection.query('select * from user',(err,result,fields)=>{
if(err) throw err;
console.log(result);
})
connection.end();案例:登录
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action='http://localhost:8080'>
<input type="text" name="userName">
<input type="password" name="userPwd">
<input type="submit" value="登录">
</form>
</body>
</html>const http = require("http");
const querystring = require("querystring");
const mysql = require("mysql");
const server = http.createServer((req,res)=>{
let postVal = "";
req.on("data",(chunk)=>{
postVal+=chunk;
})
req.on("end",()=>{
let formVal = querystring.parse(postVal);
let userName = formVal.userName;
let userPwd = formVal.userPwd;
const connection = mysql.createConnection({
host:"localhost",
user:"root",
password:"root123",
database:"demo1",
port:3306
})
//数据库信息
connection.connect();
//连接数据库
connection.query("select * from user where userName=? and userPwd=?",[userName,userPwd],(err,results,fields)=>{
if(err) throw err;
if(results.length > 0){
res.writeHead(200,{'Content-Type':"text/html;charset=utf8"})
res.write('登录成功')
res.end();
}
})
connection.end();
})
})
server.listen(8080);案例:注册
<html>
<head>
<title></title>
</head>
<body>
<form method='post' action='http://localhost:8080'>
<input type="text" name="userName">
<input type="text" name="userPwd">
<input type="submit" value="注册">
</form>
</body>
</html>const http = require("http");
const querystring = require("querystring");
const mysql = require("mysql");
const server = http.createServer((req,res)=>{
if(req.url!='/favicon.ico'){
let postVal = "";
req.on("data",(chunk)=>{
postVal+=chunk;
})
req.on("end",()=>{
let formVal = querystring.parse(postVal);
let userName = formVal.userName;
let userPwd = formVal.userPwd;
const connection = mysql.createConnection({
host:"localhost",
user:'root',
password:"root123",
database:"demo1"
})
connection.connect();
connection.query('insert into user value (?,?,?)',[0,userName,userPwd],(err,results,fields)=>{
if(err) throw err;
res.write("注册成功!!!");
res.end();
})
connection.end();
})
}
})
server.listen(8080);
五、Express
express目录结构
express是基于node.js的web应用开发框架
express路由关系
引入资源和模块语法
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<b><%= msg %></b>
<img src="/images/1.png" alt="">
<ul>
<% arr.forEach((item)=>{ %>
<li> <%= item %> </li>
<% }) %>
</ul>
</body>
</html>
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Camila's blog!
评论
GitalkValine