前端小菜鸟的进阶之路
1. 增
INSERT INTO users(username,pwd,age) VALUES("李四",123,19)
INSERT INTO users(username,pwd,age) VALUE ("张三",123,12)
INSERT INTO users(username,pwd,age) VALUES ("王二1",1,1);
INSERT INTO users(username,pwd,age) VALUES ("王二2",1,1);
INSERT INTO users(username,pwd,age) VALUES ("王二3",1,1);
INSERT INTO users(username,pwd,age) VALUES ("王二4",1,1);
INSERT INTO users(username,pwd,age) VALUES ("王二5",1,1);
INSERT INTO users(username,pwd,age) VALUES ("王二6",1,1)
2. 删除
DELETE FROM users WHERE username="张三"
DELETE FROM users WHERE id=1 or id=4
DELETE FROM users WHERE id IN(5,6,7)
AND
BETWEEN AND
OR
ONT
3.修改
UPDATE 表名 SET 设置的内容 WHERE 加条件语句
UPDATE users SET username="张三",pwd=321 WHERE id=3
4.查询
SELECT * FROM `users` WHERE 1
SELECT * FROM `users` WHERE username LIKE "李%"
SELECT * FROM `users` WHERE username LIKE "张%" AND age=12
5.分页查询
SELECT * FROM `users` LIMIT 2,2//第二条数据,查三条
6.倒序排列
SELECT * FROM `users` ORDER BY id DESC
7.统计条数
SELECT COUNT(*) FROM users
8.联表查询
将两张表连在一起进行查询
SELECT * FROM 表名1 JOIN 表名2
SELECT * FROM users JOIN product ON users.id=product.id;
9.简写
SELECT * FROM `users` AS u JOIN product AS p ON u.id=p.id
10.以左边为主表
SELECT * FROM `users` AS u LEFT JOIN product AS p ON u.id=p.id
1.打开本地服务器
sudo apachectl start
2.进入服务器
/jas/资源库/webserver/Documents/ 可以改权限
3.结束
sudo apachectl stop
1.打开阿帕奇
2.测试版本,在服务器里放入一个test.php文件
3.在test.php文件里写上
4.访问http://localhost/class/test/test.php
1.echo只能打印字符串和数字
echo "hello world!";
echo "<br>";
echo (111);//数字不加引号可以
2.变量声明
$a = "你好";
echo $a;
$b="hello";
$hello="hello jas";
echo $$b; //hello jas
3.变量解析,字符串连接使用“.”
$c="你好";
$res1="张三";
echo $c.$res1; //你好张三
$res2="张三$c";//必须双引号才会解析
$res2="张三'$c'";//张三'你好'
echo $res2;
4.自动转换
$d=1;
$e="2";
echo gettype($d+$e);//整型integer
echo ($d+$e);//3
5.强制转换
echo gettype($e); //string
echo gettype((int)$e);//integer
6.字符串定义方式二:
// 定界符,一般定义长字符串;注意,结尾顶头写,前后不许有空格
$str=<<<AAA
fdffdfdfdfdfdff
AAA;
echo $str;//fdffdfdfdfdfdff
7.php不会传值
$arr1=[1,2,3];
$arr2=$arr1;//想传值加&符号
$arr2[0]=5;
print_r($arr1);//Array ( [0] => 1 [1] => 2 [2] => 3 )
$arr1=[1,2,3];
$arr3=&$arr1;//想传值加&符号
$arr3[0]=5;
print_r($arr1);//Array ( [0] => 5 [1] => 2 [2] => 3 )
8.数组定义方式
$arr=array("张三","李四","王二");//索引数组
print_r($arr); //Array ( [0] => 张三 [1] => 李四 [2] => 王二 )
var_dump(); // array(3) { [0]=> string(6) "张三" [1]=> string(6) "李四" [2]=> string(6) "王二" }
mv -n ~/Downloads/mongodb-osx-x86_64-3.2.9 ~/Applications/mongodb/
sudo mkdir -p /data/db
sudo chown -R 电脑用户名后面有空格看清楚 /data
cd Users/lanou/Applications/mongodb/bin
./mongo 打开shell脚本
show dbs 查看可用的数据库
use 数据库名 创建数据库
db.集合名称.insert({}) 创建集合,可有多个,向集合插入数据
db.集合名.find() 查找
db.集合名.find().pretty() 查找
db.集合名.findOne() 查找第一个集合
db.dropDatabase()删除
db.col.grop()删除集合
db.集合名.remove({age:30})删除
npm install mongoose --save
npm install express-generator -g //全局安装
express h //测试
express -e -C less expressTest //初始化目录
cd expressTest //进入目录
nam install //初始化
DEBUG=expresstest:* npm start //开始
热更新 npm i supervisor -g
#我github上基于上述的项目,欢迎star
精英吧项目
var obj = {};
var arr = [];
console.log(typeof obj === 'object'); //true
console.log(typeof arr === 'object'); //true
console.log(typeof null === 'object'); //true
从上面的输出结果可知,typeof bar === "object" 并不能准确判断 bar 就是一个 Object。可以通过 Object.prototype.toString.call(bar) === "[object Object]" 来避免这种弊端:
let obj = {};
let arr = [];
console.log(Object.prototype.toString.call(obj)); //[object Object]
console.log(Object.prototype.toString.call(arr)); //[object Array]
console.log(Object.prototype.toString.call(null)); //[object Null]
(function(){
var a = b = 3;
})();
console.log("a defined? " + (typeof a !== 'undefined'));
console.log("b defined? " + (typeof b !== 'undefined'));
console.log(b); //3
console,log(typeof a); //undefined
b = 3;
var a = b;
var myObject = {
foo: "bar",
func: function() {
var self = this;
console.log("outer func: this.foo = " + this.foo);
console.log("outer func: self.foo = " + self.foo);
(function() {
console.log("inner func: this.foo = " + this.foo);
console.log("inner func: self.foo = " + self.foo);
}());
}
};
myObject.func();
打印结果:
outer func: this.foo = bar
outer func: self.foo = bar
inner func: this.foo = undefined
inner func: self.foo = bar
for(var i = 0; i < 5; i++) {
setTimeout(function() {console.log(i); }, 1000);
}
上面的输出并不是你以为的0,1,2,3,4,而输出的全部是5,这时 IIFE 就能有用了:
for(var i = 0; i < 5; i++) {
(function(i) {
setTimeout(function() {console.log(i);}, 1000);
})(i)
}
而在 JQuery/Node 的插件和模块开发中,为避免变量污染,也是一个大大的 IIFE:
(function($) {
//代码
} )(jQuery);
function foo1(){
return {
bar: "hello"
};
}
下一个
function foo2(){
return
{
bar: "hello"
};
}
1. 去node.js官网下载包,一步步确认就行
node.js.包版本
2. node.js特性
Node.js库异步和事件驱动 所有API异步是非阻塞。 这意味着一个基于Node.js的服务器不会等待API返回数据。 服务器移动到下一个API后调用它,Node.js事件的一个通知机制有助于服务器,以获得从以API调用的响应。
非常快 正在构建在谷歌Chrome的V8 JavaScript引擎,Node.js库代码执行是非常快的。
单线程但高度可扩展 Node.js使用事件循环单线程模型。事件机制有助于服务器在非阻塞的方式作出反应,并使得服务器的高可扩展性,而不是它创建线程限制来处理请求的传统服务器。 Node.js使用单线程的程序和同样的程序处理比传统的服务器要大的多,比如:比Apache HTTP服务器请求服务的数量大得多。
无缓冲 Node.js的应用从来没有缓冲任何数据。这些应用程序只需输出块中的数据。
许可证 Node.js是在MIT许可下发布的。
3. 开头引入
var http = require("http");
var fs = require("fs");
var url = require("url");
4. 引入服务器并监听
var server = http.createServer(handle).listen(3000);
function handle(req, res){}
vue-resource非常小巧,在压缩以后只有大约12KB,服务端启用gzip压缩后只有4.5KB大小,这远比jQuery的体积要小得多。
和Vue.js一样,vue-resource除了不支持IE 9以下的浏览器,其他主流的浏览器都支持。
Promise是ES6的特性,Promise的中文含义为“先知”,Promise对象用于异步计算。
URI Templates表示URI模板,有些类似于ASP.NET MVC的路由模板。
拦截器是全局的,拦截器可以在请求发送前和发送请求后做一些处理。
拦截器在一些场景下会非常有用,比如请求发送前在headers中设置access_token,或者在请求失败时,提供共通的处理方式。
// 基于全局Vue对象使用http
Vue.http.get('/someUrl', [options]).then(successCallback, errorCallback);
Vue.http.post('/someUrl', [body], [options]).then(successCallback, errorCallback);
get
get:function(){ this.$http.get('data/a.php',{ params:{a:1,b:2} }) .then(function(res){ alert(res.data) },function(res){ alert(res.status) }) }
post
post:function(){
this.$http.post('data/b.php',{
// params:{
a:1,
b:2,
// }
},{
emulateJSON:true
})
.then(function(res){
alert(res.data)
},function(res){
console.log(res.status)
})
}
jsonp跨域
jsonp:function(){
this.$http.jsonp('https://sug.so.360.cn/suggest?callback=suggest_so&word=a',{
q:'a'
})
.then(function(res){
alert(res.data.s)
},function(res){
console.log(res.staus)
})
}
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true