nodeJS簡(jiǎn)單介紹及使用nodeJS操縱數(shù)據(jù)庫(kù)

NodeJS的基本概念

NodeJS是什么魁兼?

`官網(wǎng):
https://nodejs.org/en/

Node.js? is a JavaScript runtime built on
Chrome's V8 JavaScript engine. Node.js uses
an event-driven, non-blocking I/O model that
makes it lightweight and efficient. Node.js'
package ecosystem, npm, is the largest
ecosystem of open source libraries in the
world.`

js能做什么事?
js ---> 瀏覽器中運(yùn)行(面向過(guò)程--->面向?qū)ο?
js ---> 后臺(tái)開(kāi)發(fā)

NodeJS就是使用js代碼晌杰,來(lái)做后臺(tái)開(kāi)發(fā)

使用NodeJS可以開(kāi)啟一個(gè)Web服務(wù)格郁,給瀏覽器提供數(shù)據(jù)去
展示,并且接收瀏覽器提交過(guò)來(lái)的用戶(hù)產(chǎn)生的數(shù)據(jù)除呵,存儲(chǔ)
到數(shù)據(jù)庫(kù)中勾习,方便后面使用。

NodeJS能做什么煎娇?

1、提供數(shù)據(jù)給瀏覽器展示
2贪染、保存用戶(hù)提交過(guò)來(lái)的數(shù)據(jù)
3缓呛、數(shù)據(jù)統(tǒng)計(jì)與分析

前端開(kāi)發(fā)者為什么要學(xué)習(xí)nodeJS

1、要和后臺(tái)打交道杭隙,明白后臺(tái)提供給我們的數(shù)據(jù)是經(jīng)過(guò)哪幾
2哟绊、以后在開(kāi)發(fā)過(guò)程中方便調(diào)試
3、邁向全棧工程師的開(kāi)始
4寺渗、搭建個(gè)人網(wǎng)站


Node服務(wù)器軟件的安裝與配置

Node.exe的安裝

下載nodeJS匿情,安裝

檢測(cè)是否安裝成功 node -v

另外一種安裝我們node的方式
使用nvm這個(gè)軟件來(lái)安裝
node version manger,如果你想同時(shí)安裝多個(gè)node版本
教程:http://www.reibang.com/p/07c3456e875a

步驟:
1、安裝nvm這個(gè)軟件:
https://github.com/coreybutler/nvm-windows/releases

2信殊、使用上面裝好的nvm軟件炬称,安裝我們需要的node版本了
指令:
nvm install 具體的版本號(hào)就行了
nvm uninstall 具體的版本號(hào)
nvm list 查看當(dāng)前安裝了哪些版本
nvm use 具體版本號(hào),切換到某個(gè)版本

建議:
安裝一個(gè)高一點(diǎn)的穩(wěn)定的版本即可涡拘,因?yàn)檐浖际窍蛳录嫒?/p>


系統(tǒng)環(huán)境變量及其作用

系統(tǒng)環(huán)境變量

每個(gè)系統(tǒng)都會(huì)提供一種叫做環(huán)境變量的東西玲躯,用來(lái)簡(jiǎn)化我們?nèi)?br> 訪(fǎng)問(wèn)某一個(gè)應(yīng)用程序可執(zhí)行文件(.exe)的操作

我們配置了環(huán)境變量能做到什么事呢?
在我們終端的任何一個(gè)目錄下鳄乏,都可以訪(fǎng)問(wèn)跷车,配置在系統(tǒng)
環(huán)境變量里面的可執(zhí)行文件

如何將一個(gè)軟件的可執(zhí)行文件配置在我們的系統(tǒng)環(huán)境變量中?
步驟:
1、拷貝一個(gè)可執(zhí)行文件所在的目錄橱野,比如:
node.exe所在的目錄 C:\Program Files\nodejs

2朽缴、系統(tǒng) > 高級(jí)系統(tǒng)設(shè)置 > 高級(jí) > 環(huán)境變量 >
系統(tǒng)變量 > Path > 填寫(xiě)上你的目錄

注意事項(xiàng):
如果更改了系統(tǒng)的環(huán)境變量,就必須把終端重新啟動(dòng)


啟動(dòng)node.exe執(zhí)行js代碼

啟動(dòng)(相當(dāng)于啟動(dòng)Apache服務(wù)器)

1水援、在我們的node的安裝目錄下密强,去雙擊我們node.exe

2、在終端輸入 node即可 node.exe

退出我們的node.exe

1蜗元、在終端中輸入.exit
2或渤、連續(xù)按住兩次 CTRL + C

怎么去執(zhí)行js代碼

1、直接在我們啟動(dòng)的node.exe中寫(xiě)代碼(在開(kāi)啟的REPL環(huán)境中寫(xiě)代碼執(zhí)行)
缺點(diǎn):
書(shū)寫(xiě)不方便奕扣,閱讀起來(lái)也不方便
因?yàn)樵谖覀兊腸md中寫(xiě)的代碼薪鹦,是放在內(nèi)存中的,
一旦我們退出了node.exe惯豆,原先寫(xiě)的代碼都沒(méi)有了

2池磁、把我們寫(xiě)好的代碼放在一個(gè)單獨(dú)的js文件中去執(zhí)行

在終端中輸入 node.exe +執(zhí)行的文件名稱(chēng)

注意:
1、我們js代碼不是在終端中運(yùn)行的循帐,只是借助終端
去啟動(dòng)我們node.exe框仔,并且最終將結(jié)果展現(xiàn)在終端里面而已

2、在運(yùn)行時(shí)候拄养,首先你的終端的目錄得切換到你要
執(zhí)行的文件的目錄下面去离斩,然后使用node 文件名稱(chēng)執(zhí)行即可
我們nodejs的代碼是在一個(gè)叫做REPL環(huán)境中,執(zhí)行的


REPL

JS的執(zhí)行

執(zhí)行js在瀏覽器端瘪匿,我是是要依靠瀏覽器(js的解析引擎)

在服務(wù)器端 nodejs開(kāi)啟的REPL環(huán)境

官網(wǎng)的解釋:
參考:http://shouce.qdfuns.com/nodejs/repl.html

REPL就是當(dāng)通過(guò)node.exe啟動(dòng)之后開(kāi)辟的一塊內(nèi)存空間跛梗,
在這塊內(nèi)容空間里面就可以解釋執(zhí)行我們的js代碼

例如:
在終端中輸入了 node abc.js 做的事情就是,將abc.js中
寫(xiě)好的js的邏輯代碼扔在啟動(dòng)好的node的內(nèi)容空間中去運(yùn)行棋弥,
我們把啟動(dòng)好的node的這塊內(nèi)存空間稱(chēng)之為REPL環(huán)境


模塊化思想

為什么前端需要有模塊化

1核偿、解決全局變量名污染的問(wèn)題
2、把相同功能的代碼放在一個(gè)模塊(一個(gè)js文件中)方便后期維護(hù)
3顽染、便于復(fù)用

NodeJS中如何體現(xiàn)模塊化

1漾岳、Node本身是基于CommonJS規(guī)范轰绵,
參考:http://javascript.ruanyifeng.com/nodejs/module.html#toc0

2、Node作者在設(shè)計(jì)這門(mén)語(yǔ)言的時(shí)候尼荆,就嚴(yán)格按照CommonJS
的規(guī)范左腔,將它的API設(shè)計(jì)成模塊化了,比如它將開(kāi)啟Web服務(wù)這
個(gè)功能所有代碼都放入一個(gè)http模塊中

3捅儒、Node本質(zhì)來(lái)說(shuō)就是將相同功能的代碼放入到一個(gè).js文件中管理

常用NodeJS中的模塊

模塊              作用
http              開(kāi)啟一個(gè)Web服務(wù)液样,給瀏覽器提供服務(wù)
url            給瀏覽器發(fā)送請(qǐng)求用,還可以傳遞參數(shù)(GET)
querystring       處理瀏覽器通過(guò)GET/POST發(fā)送過(guò)來(lái)的參數(shù)
path              查找文件的路徑
fs              在服務(wù)器端讀取文件用的

上面五大核心模塊加上其它一些第三方的模塊巧还,就可以完成基本的數(shù)據(jù)庫(kù)操作了

nodeJS核心模塊及其操作

http

使用http模塊開(kāi)啟web服務(wù)
步驟:
    //1鞭莽、導(dǎo)入我們需要的核心模塊(NodeJS提供的模塊我們稱(chēng)之為核心模塊)
        var http = require('http');
    
    //2、利用獲取到的核心模塊的對(duì)象麸祷,創(chuàng)建一個(gè)server對(duì)象
        var server = http.createServer();

    //3澎怒、利用server對(duì)象監(jiān)聽(tīng)瀏覽器的請(qǐng)求,并且處理(請(qǐng)求-處理-響應(yīng))
        server.on('request',function(req,res){
             res.end("welcome");
          });

    //4摇锋、開(kāi)啟web服務(wù)開(kāi)始監(jiān)聽(tīng)
        server.listen(8080,'127.0.0.1',function(){
            console.log('開(kāi)啟服務(wù)器成功');
          });

url

1丹拯、導(dǎo)入url這個(gè)核心模塊

2、調(diào)用url.parse(url字符串,true)荸恕,如果是true的話(huà)代表把我們
的username=zhangsan&pwd=123 字符串解析成js對(duì)象

 // 使用url模塊獲取url中的一些相關(guān)信息
const url = require('url')
var testURL = http://127.0.0.1:8899/login?username=zhangsan&pwd=123 
console.log(url.parse(testURL,true))//{username:zhangsan,pwd:123}

QueryString

作用:
將GET/POST傳遞過(guò)來(lái)的參數(shù)乖酬,進(jìn)行解析
GET : ?username=zhangsan&pwd=123
POST : username=zhangsan&pwd=123

使用:
    const querystring = require('querystring')
    
    const paramsObj = querystring.parse(鍵值對(duì)的字符串)

GET&POST

相同點(diǎn):
都是HTTP協(xié)議的方法
都能傳遞參數(shù)給服務(wù)器

不同點(diǎn):
1、傳參的方式不一樣
GET 放在路徑后面 ?開(kāi)始融求,后面鍵值對(duì)
POST 放在請(qǐng)求體 鍵值對(duì)的方式

2咬像、傳參的限制不一樣
GET 2048B
POST 2M

3、GET有緩存生宛,POST沒(méi)有

4县昂、GET傳參不安全,POST相對(duì)安全

建議:
如果只是單純的獲取數(shù)據(jù)陷舅,就用GET倒彰,因?yàn)镚ET有緩存效率高

如果是要向服務(wù)器提交數(shù)據(jù),就用POST


fs&path

path

作用:獲取路徑

path.join(__dirname,'你要讀取的文件夾下面的文件名稱(chēng)即可')

__dirname全局屬性莱睁,代表當(dāng)前文件所在的文件夾路徑

path.join會(huì)自動(dòng)判斷文件的路徑待讳,并且給他加上`/`

fs

作用:讀取服務(wù)器硬盤(pán)上面的某一個(gè)文件(操作文件)

fs.readFile : 異步讀取服務(wù)器硬盤(pán)上面的某一個(gè)文件

fs:node去讀取服務(wù)器硬盤(pán)中的文件(操作文件)

path:獲取文件的路徑

上面兩個(gè)基本上配合起來(lái)用

自定義模塊

CommonJS規(guī)范認(rèn)為,一個(gè).js文件就可以看成一個(gè)模塊仰剿,如果我們想把模塊中定義的變量创淡,方法,對(duì)象給外面的js使用南吮,就必須使用CommonJS提供module將我們需要給外面用的東西琳彩,導(dǎo)出去

注意點(diǎn)

在commonjs中導(dǎo)入模塊用 require
在commonjs中在模塊中導(dǎo)出 使用module.exports
如果是自定義模塊,在導(dǎo)入自定義模塊的時(shí)候,得把路徑寫(xiě)完整
require導(dǎo)入的東西露乏,就是別的文件modulu.exports導(dǎo)出的東西


Express 框架

基本概念

它是對(duì)HTTP封裝碧浊,用來(lái)簡(jiǎn)化我們網(wǎng)絡(luò)功能那一塊

官網(wǎng):http://www.expressjs.com.cn/
官方解釋:
基于 Node.js 平臺(tái),快速瘟仿、開(kāi)放辉词、極簡(jiǎn)的 web 開(kāi)發(fā)框架。

重點(diǎn)

1猾骡、如何去接收GET/POST傳遞過(guò)來(lái)的參數(shù)
2、如何通過(guò)Express進(jìn)行分門(mén)別類(lèi)的處理路由
3敷搪、靜態(tài)資源的處理

使用

1兴想、Hello World 案例

步驟:
1、導(dǎo)入包
2赡勘、創(chuàng)建一個(gè)app
3嫂便、請(qǐng)求處理響應(yīng)
4、開(kāi)啟web服務(wù)闸与,開(kāi)始監(jiān)聽(tīng)

2毙替、獲取GET/POST參數(shù)
GET參數(shù):登錄 http://127.0.0.1:3000/login?username=zhangsan&pwd=123

可以直接在我們的req.query中就可以獲取了

POST參數(shù):因?yàn)閑xpress沒(méi)有直接提供獲取POST參數(shù)的方法,需要借助一個(gè)第三方包 body-parser
參考:
https://www.npmjs.com/package/body-parser

步驟:
1践樱、npm install body-parser --save
2厂画、導(dǎo)包
3、實(shí)現(xiàn)某些方法

最后通過(guò)req.body即可以獲取到post提交過(guò)來(lái)的參數(shù)

路由處理

前端路由:
作用:當(dāng)觸發(fā)了某個(gè)超鏈接之后拷邢,根據(jù)路由的配置袱院,決定
跳轉(zhuǎn)到哪個(gè)頁(yè)面,最終將這個(gè)頁(yè)面呈現(xiàn)出來(lái)

后臺(tái)的路由
作用:就是用來(lái)分門(mén)別類(lèi)的出路用戶(hù)發(fā)送過(guò)來(lái)的請(qǐng)求

    http://127.0.0.1:3000/login
    http://127.0.0.1:3000/register
    
    http://127.0.0.1:3000/getGoodsList
    http://127.0.0.1:3000/getGoodsInfo
    
    jd購(gòu)物
    男士:(專(zhuān)門(mén)創(chuàng)建一個(gè)man.js文件來(lái)實(shí)現(xiàn)男士區(qū)域商品的請(qǐng)求)
        http://www.jd.com/man/xz
        http://www.jd.com/man/ld
        http://www.jd.com/man/px
        
    女士:(專(zhuān)門(mén)創(chuàng)建一個(gè)girl.js文件來(lái)實(shí)現(xiàn)女士區(qū)域商品的請(qǐng)求)
        http://www.jd.com/girl/xs
        http://www.jd.com/girl/bag
        http://www.jd.com/girl/kh

express中代碼實(shí)現(xiàn)?

步驟:
1瞭稼、先要?jiǎng)?chuàng)建一個(gè)單獨(dú)的路由(js文件)忽洛,來(lái)處理某一類(lèi)
請(qǐng)求下面的所有用戶(hù)請(qǐng)求,并且需要導(dǎo)出去
1.1 導(dǎo)入包 express
1.2 創(chuàng)建一個(gè)路由對(duì)象
const manRouter = express.Router()
1.3 在具體的路由js中處理屬于我們?cè)撐募穆酚?br> manRouter.get(xxx)
manRouter.post(xxx)
1.4 將上面創(chuàng)建的路由對(duì)象導(dǎo)出去环肘,在入口文件中使用

2欲虚、在入口文件中,導(dǎo)入我們的路由文件悔雹,并且使用就可以了

//導(dǎo)入路由文件
const manRouter = require(path.join(__dirname,"man/manRouter.js"))
//在入口文件中使用
app.use('/man',manRouter)
                ```
                
## Express中靜態(tài)資源的處理
Express希望對(duì)我們后臺(tái)靜態(tài)資源處理复哆,達(dá)到簡(jiǎn)單的目的,
    然后只希望我們程序員寫(xiě)一句話(huà)就能搞定
    
步驟:
        1荠商、在我們?nèi)肟谖募性O(shè)置靜態(tài)資源的根目錄
            注意點(diǎn):一定要在路由處理之前設(shè)置

app.use(express.static(path.join(__dirname,'statics')))
```

2寂恬、在我們的頁(yè)面中,按照我們Express的規(guī)則來(lái)請(qǐng)求后臺(tái)
靜態(tài)資源數(shù)據(jù)
寫(xiě)link的href,script的src寫(xiě)的時(shí)候莱没,除開(kāi)靜態(tài)資源根
路徑之外初肉,按照他在服務(wù)器上面的路徑規(guī)則寫(xiě)


mongodb數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)

保存數(shù)據(jù)的倉(cāng)庫(kù),數(shù)據(jù)庫(kù)本質(zhì)也是一個(gè)文件饰躲,只是說(shuō)和普通的
文件不太一樣牙咏,他有自己的存儲(chǔ)規(guī)則臼隔,讓我們保存數(shù)據(jù)和查詢(xún)
數(shù)據(jù)更加方便

存儲(chǔ)文件的介質(zhì)

localStorage 文本文件
大型數(shù)據(jù)或是海量數(shù)據(jù)的時(shí)候必須要用到數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)的分類(lèi)

客戶(hù)端:
iOS/Android/前端
iOS/Android SQLite 在iOS/Android存儲(chǔ)App的數(shù)據(jù)

服務(wù)端:
關(guān)系型數(shù)據(jù)庫(kù)
部門(mén)---員工
mysql
sqlserver
oracle

非關(guān)系型數(shù)據(jù)庫(kù)
JSON對(duì)象的形式來(lái)存儲(chǔ)

MongoDB : 簡(jiǎn)單,你會(huì)js妄壶、JSON就能操作
Redis
Memcached

數(shù)據(jù)庫(kù)的作用

1摔握、保存應(yīng)用程序產(chǎn)生的數(shù)據(jù)(用戶(hù)注冊(cè)數(shù)據(jù),用戶(hù)的個(gè)人信息等等)
2丁寄、當(dāng)應(yīng)用程序需要數(shù)據(jù)的時(shí)候氨淌,提供給應(yīng)用程序去展示


安裝mongodb服務(wù)端

步驟:
1、安裝mongodb服務(wù)端軟件
2伊磺、設(shè)置mongodb的環(huán)境變量盛正,重啟終端驗(yàn)證 mongo -version
3、建立一個(gè)文件夾屑埋,用來(lái)存儲(chǔ)mongodb數(shù)據(jù)庫(kù)產(chǎn)生的數(shù)
據(jù)(建議放在C盤(pán)根目錄 mongodb_datas)
4豪筝、啟動(dòng)
mongod --dbpath c:/mongodb_datas

啟動(dòng)服務(wù)端有幾種方式

1、方式一摘能,直接在cmd中輸入 mongod --dbpath c:/mongodb_datas
32位: mongod --dbpath c:/mongodb_datas --journal --storageEngine=mmapv1

2续崖、方式二,可以把mongod --dbpath c:/mongodb_datas做成一個(gè)批處理文件
32位: mongod --dbpath c:/mongodb_datas --journal --storageEngine=mmapv1

使用robomongo這個(gè)小機(jī)器人來(lái)操作我們的數(shù)據(jù)庫(kù)中的數(shù)據(jù)

步驟:
1团搞、連接到我們mongodb數(shù)據(jù)庫(kù)服務(wù)端严望,并且連接成功之
后,服務(wù)端會(huì)給我們返回一個(gè)操作數(shù)據(jù)庫(kù)的db對(duì)象

2逻恐、拿著上一步返回的db對(duì)象著蟹,對(duì)mongodb數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作了

連接成功之后,我們要來(lái)操作數(shù)據(jù)的話(huà)
1梢莽、創(chuàng)建一個(gè)數(shù)據(jù)庫(kù) (相當(dāng)于在excel中創(chuàng)建空白工作簿)
2萧豆、創(chuàng)建集合 (相當(dāng)于在excel創(chuàng)建工作表單)
數(shù)據(jù)的一個(gè)集合,把相關(guān)聯(lián)的數(shù)據(jù)放在一個(gè)集合中
3昏名、確立表頭涮雷,插入數(shù)據(jù)、刪除數(shù)據(jù)轻局、修改數(shù)據(jù)洪鸭、查詢(xún)數(shù)據(jù)

MongoDB數(shù)據(jù)庫(kù)中的概念

數(shù)據(jù)庫(kù) : 一個(gè)App中對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)

集合:相當(dāng)于Excel中表單,一堆數(shù)據(jù)的集合仑扑,相關(guān)聯(lián)的數(shù)據(jù)览爵,
會(huì)放在一個(gè)集合中

文檔:相當(dāng)于excel中的每一行數(shù)據(jù)

一個(gè)數(shù)據(jù)中可以有多個(gè)集合(學(xué)生集合、食品集合)
一個(gè)集合可以有多條文檔(多條數(shù)據(jù))

在NodeJS中使用mongodb這個(gè)第三方包來(lái)操作我們mongodb數(shù)據(jù)庫(kù)中的數(shù)據(jù)

參考:
https://www.npmjs.com/package/mongodb

前提準(zhǔn)備:
1镇饮、使用npm i mongodb --save來(lái)安裝

正式集成:
1蜓竹、導(dǎo)入包
2、拿到我們mongoClient對(duì)象
3、使用mongoClient連接到mongodb的服務(wù)端俱济,返回操作數(shù)據(jù)庫(kù)的db對(duì)象
4嘶是、通過(guò)db對(duì)象,拿到數(shù)據(jù)集合

db.collection('集合的名稱(chēng)')
            ```
5蛛碌、調(diào)用集合的增聂喇,刪,改蔚携,查的方法希太,來(lái)操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)
            

------------------------------------------
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酝蜒,隨后出現(xiàn)的幾起案子跛十,更是在濱河造成了極大的恐慌,老刑警劉巖秕硝,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異洲尊,居然都是意外死亡远豺,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)坞嘀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)躯护,“玉大人,你說(shuō)我怎么就攤上這事丽涩」字停” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵矢渊,是天一觀(guān)的道長(zhǎng)继准。 經(jīng)常有香客問(wèn)我,道長(zhǎng)矮男,這世上最難降的妖魔是什么移必? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮毡鉴,結(jié)果婚禮上崔泵,老公的妹妹穿的比我還像新娘。我一直安慰自己猪瞬,他們只是感情好憎瘸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著陈瘦,像睡著了一般幌甘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天含潘,我揣著相機(jī)與錄音饲做,去河邊找鬼。 笑死遏弱,一個(gè)胖子當(dāng)著我的面吹牛盆均,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漱逸,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼泪姨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了饰抒?” 一聲冷哼從身側(cè)響起肮砾,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎袋坑,沒(méi)想到半個(gè)月后仗处,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡枣宫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年婆誓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片也颤。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡洋幻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出翅娶,到底是詐尸還是另有隱情文留,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布竭沫,位于F島的核電站燥翅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蜕提。R本人自食惡果不足惜权旷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贯溅。 院中可真熱鬧拄氯,春花似錦、人聲如沸它浅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)姐霍。三九已至鄙麦,卻和暖如春典唇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胯府。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工介衔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骂因。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓炎咖,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親寒波。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乘盼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容