当前位置: 首页 > news >正文

制作网页如何添加图片免费seo软件

制作网页如何添加图片,免费seo软件,手机网站定制方案,crm系统架构图目录 Node.js 文件系统模块(二) Node.js 文件系统模块(三) Node.js 文件系统模块(四) Node.js 路径模块 Node.js 连接 MySQL Node.js nodemon Node.js 操作 MySQL Node.js 应用 Node.js 文件系统模块…

目录

Node.js 文件系统模块(二)

 Node.js 文件系统模块(三)

 Node.js 文件系统模块(四)

Node.js 路径模块 

Node.js 连接 MySQL

 Node.js nodemon

Node.js 操作 MySQL

Node.js 应用


Node.js 文件系统模块(二)

打开文件
fs.open(path, flags[, mode], callback) 

Flag 描述
以读取模式打开文件。如果文件不存在抛出异常。
r+以读写模式打开文件。如果文件不存在抛出异常。
rs 以同步的方式读取文件。
rs+ 以同步的方式读取和写入文件。
以写入模式打开文件,如果文件不存在则创建。
wx类似 'w',但是如果文件路径存在,则文件写入失败。
w+ 以读写模式打开文件,如果文件不存在则创建。
wx+ 类似 'w+', 但是如果文件路径存在,则文件读写失败。
以追加模式打开文件,如果文件不存在则创建。
ax 类似 'a', 但是如果文件路径存在,则文件追加失败。
a+以读写追加模式打开文件,如果文件不存在则创建。
ax+ 类似 'a+', 但是如果文件路径存在,则文件读取追加失败。

const fs=require('fs')
fs.open('input.txt', 'r+', function(err, fd)
{if (err) {return console.error(err);} console.log(fd);fs.writeFile(fd, '小童程序员', (err) => {if(err){return  console.log(err)}console.log('写入完成')})
});

 Node.js 文件系统模块(三)

查看文件
fs.stat(path, callback) 

var fs = require("fs");
fs.stat('input.txt', function (err, stats)
{if (err) {return console.error(err);}console.log(stats);// 检测文件类型console.log("是否为文件 ? " + stats.isFile());console.log("是否为目录 ? " + stats.isDirectory());  
});

删除文件
fs.unlink(path, callback)

fs.unlink('input.txt', function(err) {if (err) {return console.error(err);}console.log("文件删除成功!");
});

 Node.js 文件系统模块(四)

1、创建目录
fs.mkdir(path[, options], callback) 

var fs = require("fs");
// tmp 目录必须存在
console.log("创建目录 tmp/test");
fs.mkdir("./tmp/test",function(err){if (err) {return console.error(err);}console.log("目录创建成功。");
});
fs.mkdir("./tmp/test",{ recursive: true
},function(err){if (err) {return console.error(err);}console.log("目录创建成功。");
});

2、读取目录
fs.readdir(path, callback)

var fs = require("fs");
console.log("查看 /tmp 目录");
fs.readdir("./tmp",function(err, files){if (err) {return console.error(err);}files.forEach( function (file){console.log( file );});
});

 3、删除目录
fs.rmdir(path, callback)

var fs = require("fs");
// 执行前创建一个空的 /tmp/test 目录
console.log("准备删除目录 ./tmp/test");
fs.rmdir("./tmp/test",function(err){if (err) {return console.log(err);}
});

 提示:
删除目录,如果目录下面有下一级则报错

Node.js 路径模块 

path 是Node.js的路径模块,用来处理路径。
path.dirname() 

返回路径的目录部分

require('path').dirname('./test/something') // ./test
require('path').dirname('./test/something/file.txt')
// ./test/something

path.extname()
返回路径的扩展名部分

require('path').extname('./test/something') // ''
require('path').extname('./test/something/input.txt') // '.txt'

path.isAbsolute()
如果是绝对路径,则返回 true。

require('path').isAbsolute('/test/something') // true
require('path').isAbsolute('./test/something') // false

path.join()
连接路径的两个或多个部分

const name = '程序员'
require('path').join('/', '小童', name) //'/小童/程序员'

path.parse()
解析对象的路径为组成其的片段:
        root : 根路径。
        dir : 从根路径开始的文件夹路径。
        base : 文件名 + 扩展名
        name : 文件名
        ext : 文件扩展名

require('path').parse('/users/test.txt')
//{
// root: '/',
// dir: '/users',
// base: 'test.txt',
// ext: '.txt',
// name: 'test'
//}

path.relative()
接受 2 个路径作为参数。 基于当前工作目录,返回从第一个路径到第二个路径的相对路径。

require('path').relative('/Users/joe','/Users/joe/test.txt') //'test.txt'
require('path').relative('/Users/joe','/Users/joe/something/test.txt') //'something/test.txt'

 path.resolve()
获得相对路径的绝对路径计算

require('path').resolve('joe.txt')
require('path').resolve('/etc', 'joe.txt') //'/etc/joe.txt'

Node.js 连接 MySQL

1、安装MySQL数据库
安装 xampp
        安装包下载地址: https://sourceforge.net/projects/xampp/files/
        进行下载安装
        启动
        新建数据库,新建表 

2、安装 mysql
yarn add mysql 或者 npm install mysql

3、node.js 连接 MySQL 

var mysql    = require('mysql');
//创建跟数据库的连接
var connection = mysql.createConnection({host   : 'localhost',user   : 'root',password : '',database : 'test'
});
//启动连接
connection.connect();
//执行查询
connection.query('select * from test',
function (error, results) {if (error) throw error;console.log(results);
});

 Node.js nodemon

安装 nodemon
yarn add nodemon 或者 npm install nodemon --save 

 使用nodemon运行脚本

nodemon 脚本文件 

使用package.json脚本

"scripts": {"start":"nodemon index.js"
}

 使用 npx

npx nodemon index.js 

Node.js 操作 MySQL

1、查询

connection.query('select * from test where name=?','test1', function (error, results,fields) {if (error) throw error;console.log(results,'results');
});

 2、插入

connection.query('insert into test(name) values (?)','test3', function (error,results, fields) {if (error) throw error;if(results.affectedRows){console.log('插入成功')}});

3、更新

connection.query('update test set value=? where name=?', [10,'test4'], function (error, results, fields) {if (error) throw error;if (results.affectedRows) {console.log('更新成功')}
});

4、删除

connection.query('delete from test where name=?', ['test4'], function (error, results, fields) {if (error) throw error;if (results.affectedRows) {console.log('删除成功')}
});

Node.js 应用

 index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.container {width: 600px;margin: 50px auto;}table {width: 100%;text-align: center;}table thead th {background-color: #aaa;}table tbody td {background-color: #eee;padding: 5px}form {margin-bottom: 50px;text-align: center;}input {margin-bottom: 15px;}button {margin-left: 10px}</style>
</head>
<body><div class="container"><!-- 新增数据的表单 --><form id="form1" action="http://localhost:3030/add"  method="post">名称:<input type="text"  name="name"><br />数量:<input type="text"  name="value"><br /><input type="submit" value="提交" /></form><!-- 查询数据的输入框 --><input type="text" placeholder="请输入搜索的名称" id="name"><button onclick="onGetList()">搜索</button><!-- 展示数据的列表 --><table><thead><th>名称</th><th>数量</th><th>操作</th></thead><tbody></tbody></table></div><script>// 获取数据var onGetList = function () {// 获取tbodyvar tbody = document.querySelector('tbody')// 获取搜索框里面的内容const name = document.querySelector('#name').value// 发送获取数据的请求fetch('/getlist?name=' + name).then(function (data) {data.json().then(function (result) {tbody.innerHTML = null// 遍历返回的数据,生成每一行数据result.records.forEach(function (item) {var tr = document.createElement('tr')tr.innerHTML = '<td>' + item.name + '</td>' + '<td>' + item.value + '</td>'var td = document.createElement('td')var button = document.createElement('button')button.innerHTML = '删除'// 点击删除button.onclick = function () {remove(item)}td.append(button)tr.appendChild(td)tbody.appendChild(tr)})})})}// 删除数据function remove(item) {// 发送请求,并传递要删除数据的idfetch('/remove', { method: 'POST', body: JSON.stringify({ id: item.id }), headers: { 'Content-Type': 'application/json' } }).then(function (data) {console.log(data)data.json().then(function (result) {console.log('成功')onGetList()})})}window.onload = function () {onGetList()}</script>
</body>
</html>

 mysql.js

var mysql = require('mysql');
const sqlConfig = {host: 'localhost',user: 'root',password: '',database: 'test'
}
let connection = mysql.createConnection(sqlConfig)
const sqlFn = function (sql, arr, callback)
{connection.query(sql, arr, callback)
}
module.exports = sqlFn

server.js

const http=require('http')
const router=require('./router')
http.createServer(function(req,res){router(req,res)
}).listen('3030')

router.js

const sqlFn = require('./index')
const url = require('url')
const querystring = require('querystring')
const fs = require('fs')
module.exports = (req, res) => {const { pathname, query } = url.parse(req.url, true)console.log(req.method)if (req.method == 'POST') {let params = ''req.on('data', (chunk) => {params += chunk})req.on('end', () => {console.log(params)let postParams = querystring.parse(params)if (req.headers['content-type'] == 'application/json') {postParams = JSON.parse(params)}// 处理新增数据的请求if (pathname == '/add') {sqlFn('insert into test(id,name,value) values (null,?,?) ',[postParams.name, postParams.value], (results) => {if (results.affectedRows) {res.writeHead(200, { "Content-Type": 'application/json;charset=utf-8' })res.end(JSON.stringify({ code: 0, message: '操作成功' }))}})}//处理删除请求if (pathname == '/remove') {console.log(postParams)sqlFn('delete from test where id=? ', [postParams.id], (results) => {if (results.affectedRows) {console.log('删除成功')res.writeHead(200, { "Content-Type": 'application/json;charset=utf-8' })res.end(JSON.stringify({ code: 0, message: '操作成功' }))}})}})}if (req.method == 'GET') {// 处理获取数据请求if (pathname == '/getlist') {sqlFn(`select * from test where ${query.name ? 'name=?' : 'name is not null'}`, [query.name], (results) => {console.log(results)res.writeHead(200, { "Content-Type": 'application/json;charset=utf-8' })res.write(JSON.stringify({ code: 0, records: results }))res.end()})}//处理获取html页面请求if (pathname == '/index.html') {res.writeHead(200, { "Content-Type": 'text/html;charset=utf8' })fs.readFile('./index.html', (err, data) => {res.end(data)})}}
}

http://www.ritt.cn/news/7205.html

相关文章:

  • 网站与网站做外链好吗营销型网站的类型
  • 移动互联网开发技术学什么南宁seo外包平台
  • 怎么做网站推广世界杯seo文章关键词怎么优化
  • 最好的网站设谷歌seo排名优化
  • 做app需要网站吗关键词优化策略有哪些
  • 郑州世界工厂网seo做什么网站赚钱
  • 网页游戏 手机柏乡seo快排优化
  • 公司网站建设费计入什么科目怎么把网站排名优化
  • 灰色网站模板国内搜索引擎网站
  • 沛县建设工程交易网优化大师有必要安装吗
  • 免费建设网站赚钱seo技术外包公司
  • 做机器人的网站seo品牌
  • 做网站用到的单词网站建设选亿企网络
  • 东营信息发布平台扬州seo
  • 深圳logo设计公司推荐seo网站排名全选
  • 云南网站备案难吗百度竞价渠道代理
  • 丹阳做网站江苏提升关键词排名收费
  • 黄山旅游攻略2022刷排名seo
  • 网站建设科技项目申报书范文网络关键词优化软件
  • 设计素材网站酷pseo研究协会
  • 中山专业门户网站制作平台北京seo网站优化培训
  • 西安做网站的公司维护网站维护是做什么的
  • led网站源码百度应用商店下载
  • 动漫做那个视频网站网站seo置顶 乐云践新专家
  • icp备案网站接入信息ip地址段爱站网关键词查询系统
  • 常州市城乡建设局网站营销推广方案
  • 电子商务网站建设方案目录如何自制网站
  • 管理员网站win10优化工具
  • wordpress插件2018台州seo排名公司
  • 免费模板建站网站百度提交网址多久才会收录