正则表达式是用于描述字符排列和匹配模式的一种语法规则,它主要用于字符串的模式分割,匹配,查找及替换操作,在php正则表达式一般是由正规字符和一些特殊字符联合构成的一个文本模式的程序性描述,这里我们使用perl兼容正则表达式
0)任意一个字符
1)单个字母、数字
a-z,A-Z,0-9
2)模式单元
(abc) 匹配abc并且成一个单元
3)原子表
npm install sequelize-easy-
query
--save
假设我们有一个“用户”表,我们想使用带有固有序列化“ where”和“ order”子句的
query
string
来实现过滤,排序和搜索。
// user-model.
js
// For demonstration purpose, some codes are omitted
const Sequelize = require ( 'sequelize' )
module . exports . User = new Sequelize ( configs ) . define ( 'user' , {
gender : Sequelize . BOOLEAN ,
active : Seq
接收参数:
str 欲转换的字符串
sep 设置分隔符,默认为 ‘&’
eq 设置赋值符,默认为 ‘=’
[options] maxKeys
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。
但在处理像TCP流或文件流时,必须使用到二进制数据。
因此在 Node.
js
中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
在v6.0之前创建Buffer对象直接使用new Buffer()构造函数来创建对象实例,但是Buffer对内存的权限操作相比很大,可以直接捕获一些敏感信息。
所以在v6.0以后,官方文档里面建议使用Buffer.from()接口去创建Buffer对象。
Buf...
被弃用真的就不能用了吗?
理论上来说,被弃用的用还是能用,但是out了,它有更好的方法可以使用
express已经把bodyParser合并进去了 ,我们直接express.urlendoced就可以了
const http = require('http');
const
query
string
= require('
query
string
');
const server = http.createServer((req, res)=>{
const method = req.method; //获取方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登陆</title> <link rel="shortcut icon" href="./images/titlelogo.png"/> <link rel="stylesheet" href="./css/1.css"> </head> <body> <div class="login-box"> <h2>登陆</h2> <form> <div class="user-box"> <input type="text" name="username" id="username" required=""> <label>用户名</label> </div> <div class="user-box"> <input type="password" name="password" id="password" required=""> <label>密码</label> </div> <button type="submit" onclick="login(event)">登陆</button> </form> </div> <script> function login(e) { e.preventDefault(); let username = document.getElementById("username").value; let password = document.getElementById("password").value; let xhr = new XMLHttpRequest(); let url = "http://localhost:8000/login"; xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/
js
on"); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { let response =
JS
ON.parse(xhr.responseText); if (response[0].status === "success") { alert("登陆成功!"); // TODO: 跳转到其他页面 window.location.href = "./
nodejs
/userlist.html"; } else { alert("用户名或密码错误!"); } } }; let data =
JS
ON.
string
ify({ "username": username, "password": password }); xhr.send(data); } </script> </body> </html>解释一下每一行的代码
<meta charset="UTF-8">
<title>登陆</title>
<link rel="shortcut icon" href="./images/titlelogo.png"/>
<link rel="stylesheet" href="./css/1.css">
</head>
这部分是 HTML 的头部,包含了页面标题、图标以及样式表的引入。
```html
<div class="login-box">
<h2>登陆</h2>
<div class="user-box">
<input type="text" name="username" id="username" required="">
<label>用户名</label>
<div class="user-box">
<input type="password" name="password" id="password" required="">
<label>密码</label>
<button type="submit" onclick="login(event)">登陆</button>
</form>
这部分是登录页面的主体,包含了一个表单和两个输入框(用户名和密码),以及一个登录按钮。
```html
<script>
function login(e) {
e.preventDefault();
let username = document.getElementById("username").value;
let password = document.getElementById("password").value;
let xhr = new XMLHttpRequest();
let url = "http://localhost:8000/login";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/
js
on");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
let response =
JS
ON.parse(xhr.responseText);
if (response[0].status === "success") {
alert("登陆成功!");
// TODO: 跳转到其他页面
window.location.href = "./
nodejs
/userlist.html";
} else {
alert("用户名或密码错误!");
let data =
JS
ON.
string
ify({ "username": username, "password": password });
xhr.send(data);
</script>
这部分是 JavaScript 代码,包含了登录按钮的点击事件,以及与后端的交互。其中:
- `login` 函数是登录按钮的点击事件处理函数,用 `preventDefault()` 阻止默认的表单提交事件。
- `XMLHttpRequest` 对象用于向服务器发送请求和接收服务器响应。通过 `open` 方法设置请求类型(POST)、请求地址和是否异步,通过 `setRequestHeader` 方法设置请求头,通过 `send` 方法发送请求,并通过 `onreadystatechange` 事件监听服务器响应。
- `
JS
ON.parse` 方法用于解析服务器返回的
JS
ON 格式的数据。
- `window.location.href` 属性用于在当前窗口或标签页中加载一个新文档,从而实现跳转到其他页面。
以上就是这段代码的每一行的解释。