node.js基础

node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时(运行环境),如浏览器也是js的运行环境,
Node 也是JS的运行环境,但是将JS代码的应用场景扩展到了服务器端

补充:

JavaScript 是 Web 的编程语言。是一种解释型语言,是客户端语言。
JavaScript定义了网页的行为
HTML 定义了网页的内容
CSS 描述了网页的布局

js的组成

    ECMAScript(ES) : 负责翻译,为js的核心,解释器。
DOM (Document Object Model 文档对象模型):赋予js操作HTML的能力,document。
BOM (Browser Object Modal 浏览器对象模型):赋予js操作浏览器的能力,window,不兼容不建议使用。

变量类型

   5种基本类型:unll,undefined,boolean,number,string
   1种复杂类型:object
   5种引用类型:Array,Object,Function,Date,RegExp
   3种基本包装类型:Boolean,Number,String
   2种单体内置对象:Global,Math
   undefined:没有定义的变量,var声明没有初始化的变量
typeof 可查看变量类型,一个变量应只存一个类型的数据。

安装

官方安装弟子:http://nodejs.cn/download/

安装完成后,桌面上并没有什么快捷方式,因为Node仅仅是一个JS的执行环境

使用Node需要用到命令行工具。

使用命令行工具、 cmd 工具也可以使用win10中的 powershell 输入

node -v

检测是否安装成功,最后配置环境变量;
在终端中输入启动命令:

node ./011.js
node 文件名

错误代号 2502/2503

表示当前系统的用户权限不足。

解决方法:
以管理员身份运行 powershell 工具
属于运行安装包命令:msiexec /package node安装包位置

最后配置环境变量;

nonde 工具之 nodemon

nodemon是一种工具,可以自动检测到目录中的文件更改时通过重新启动应用程序来调试基于node.js的应用程序。
在命令行工具、 cmd 工具也可以使用win10中的 powershell 输入安装命令:

全局安装

npm install -g nodemon  

局部安装:

npm install --save-dev nodemon

使用:

在终端中输入命令:

nodemon ./123.js
nodemon 文件名

nodejs 基础

Node.js是由ECMAScript及Node 环境提供的一些附加API组成的,包括文件、网络、路径等等一些
更加强大的 API

nodejs 代码的编写:
打开任意你熟悉的开发工具,新建文件 hello.js,注意这里的文件后缀名是 .js ,而不是 .html
编写测试代码

nodejs 代码的运行:
找到 hello.js 文件的位置,然后按下 shift 键的同时点击鼠标右键,选择“在此处打开powershell 窗
口”,输入如下命令:

node 123.js

node 文件的后缀名都是.js
以前的学习中,都是将js文件引入到html中,以运行html文件的方式执行js代码,但node是服务器
技术,在node技术中,不存在 dom 和 bom,所以运行方式与以前是不一样的
运行node程序的方式是使用 node 命令加上文件名称的方式
除了在命令行中运行node程序的方式外,很多开发工具,如vs code内部,也可以运行node程序

nodejs 基础语句

读取文件

同步读取:

var fs = require('fs')
var res = fs.readFileSync('./a.text','utf8')
console.log(res)

异步读取:

var fs=require('fs')
fs.readFile('a.txt','utf8',(err,data)=>{
	// console.log(err)
	// console.log(data)
	if(!err){
        console.log(data)
	}
})
readFile是一个异步方法,所以需要回调函数接收读取结果
回调函数中,err 获取读取中的错误信息,如果读取过程中没有出现错误,则结果为null;data 为取的文件内容

写入文件

语法:

fs.writeFile(file, data[, options], callback)

练习:

1.
var fs = require('fs');
// 覆盖式写入文件
fs.writeFileSync('22.text','123456789','utf8')
2.
// 写入文件
fs.writeFile('./22.text','987654321','utf8',arr=>{
	console.log('文件修改成功');
})
// 读取
fs.readFile('./22.text','utf8',(err,data)=>{
	if(!err){
		console.log(data)
	}
})

Node.js :连接MySQL

// 封装 mysql 方法
var mysql      = require('mysql');
// 封装 mysql 数据库相关数据
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '123456',
  database : 'test'
});
// 执行 connect 方法
connection.connect();
// 执行 mysql 语句
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

数据库连接相关参数:

参数描述
host主机地址
user用户名
password密码
port端口号
database数据库
charset连接字符集
localAddress此IP用于TCP连接
socketPath连接到unix域路径,当使用host和port时会被忽略
timezone时区
stringifyObjects是否序列化对象
typeCast是否将列值转化为本地JavaScript类型值 (默认:true)
queryFormat自定义query语句格式化方法
debug开启调试(默认:false)

nodejs 中的数据库操作

查询数据

// 连接数据库 --
var mysql  = require('mysql');  
 
var connection = mysql.createConnection({     
  host     : 'localhost',       
  user     : 'root',              
  password : '123456',       
  port     : '3306',                   
  database : 'test' 
}); 
 
connection.connect();
// 连接数据库结束 -- 
// 封装 sql 语句
var  sql = 'SELECT * FROM websites';
// 执行查询
connection.query(sql,function (err, result) {
        if(err){
          console.log('[SELECT ERROR] - ',err.message);
          return;
        }
 
       console.log('--------------------------SELECT----------------------------');
       // 输出查询结果
       console.log(result);
    
       console.log('------------------------------------------------------------\n\n');  
});
 
connection.end();

插入数据

// 连接数据库开始 --
var mysql  = require('mysql');  
 
var connection = mysql.createConnection({     
  host     : 'localhost',       
  user     : 'root',              
  password : '123456',       
  port: '3306',                   
  database: 'test' 
}); 
 
connection.connect();
// 连接数据库结束 -- 
// 封装 sql 语句
var  addSql = 'INSERT INTO websites(Id,name,sex,alexa,country) VALUES(0,?,?,?,?)';
var  addSqlParams = ['菜鸟', '男','123456', 'ASC'];
// 执行添加数据语句
connection.query(addSql,addSqlParams,function (err, result) {
        if(err){
            console.log('[INSERT ERROR] - ',err.message);
            return;
        }        
 
       console.log('--------------------------INSERT----------------------------');
       
       console.log('INSERT ID:',result.affectedRows);
    
       console.log('-----------------------------------------------------------------\n\n');  
});
 
connection.end();

更新数据

// 连接数据库开始 --
var mysql  = require('mysql');  
 
var connection = mysql.createConnection({     
  host     : 'localhost',       
  user     : 'root',              
  password : '123456',       
  port: '3306',                   
  database: 'test' 
}); 
 
connection.connect();
// 连接数据库结束 -- 
// 封装 sql 语句
var modSql = 'UPDATE websites SET name = ?,sex = ? WHERE Id = ?';
var modSqlParams = ['菜鸟', '女',6];
//改
connection.query(modSql,modSqlParams,function (err, result) {
   if(err){
         console.log('[UPDATE ERROR] - ',err.message);
         return;
   }        
  console.log('--------------------------UPDATE----------------------------');
    
  console.log('UPDATE affectedRows',result.affectedRows);
  
  console.log('-----------------------------------------------------------------\n\n');
});
 
connection.end();

删除数据

// 连接数据库开始 --
var mysql  = require('mysql');  
 
var connection = mysql.createConnection({     
  host     : 'localhost',       
  user     : 'root',              
  password : '123456',       
  port: '3306',                   
  database: 'test' 
}); 
 
connection.connect();
// 连接数据库结束 -- 
// 封装 sql 语句
var delSql = 'DELETE FROM websites where id=6';
// 执行 删除 命令语句
connection.query(delSql,function (err, result) {
        if(err){
          console.log('[DELETE ERROR] - ',err.message);
          return;
        }        
 
       console.log('--------------------------DELETE----------------------------');
    
     console.log('DELETE affectedRows',result.affectedRows);
    
       console.log('-----------------------------------------------------------------\n\n');  
});
 
connection.end();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值