1. 程式人生 > >基於Express實現商品列表查詢介面

基於Express實現商品列表查詢介面

一、安裝Mongoose

本次查詢介面是基於Mongoose來實現的,Mongoose它是對MongoDB的一個封裝,就好比我們過去使用資料庫使用JDBC,但是我們通常也對JDBC進行封裝。

Mongoose提供了一系列的增刪改查的API,方便我們對MongoDB進行操作。

二、建立model

Mongoose需要建立一個model,通過model它就是個實體,通過實體對MongoDB資料庫進行關聯。

三、建立路由

緊接著通過路由裡面去查介面,通過路由裡面去呼叫model實體,通過model實體的API來去查詢資料庫。

四、基於mongoose,實現商品列表的查詢功能

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

首先在server目錄下建立一個models資料夾

在models目錄下建一個叫做goods.js的model

nodeJS是基於Common規範,Common規範是通過module.exports來實現的

安裝mongoose

npm i mongoose --save

在goods.js的model中載入mongoose

var mongoose = require('mongoose')

通過mongoose的Schema來獲取表模型

var Schema = mongoose.Schema;

定義一個商品的模型,去new一個Schema;

var produtSchema = new Schema({

        "productId":String,

        "productName":String,

        "prodcutPrice": Number,

        "prodcutImg": String

});

在通過module.exports將這個模型輸出

module.exports = mongoose.model('Good',produtSchema);

輸出去以後,我們就可以基於這個模型去呼叫它的Api方法,這時model實現層

在routes路由資料夾下面在建一個goods.js

現在app.js裡面設定一級路由

var goods = require('./routes/goods')

app.use('/goods',goods);

在router/goods.js的二級路由

先獲取路由檔案,

通過express框架的物件去拿到當前的路由

所以要先引入express

var express = require('express');

var router = express.Router();

緊接著需要引入mongoose

var mongoose = require('mongoose');

緊接著載入模型表

var Goods = require('../models/goods');

接著連線資料庫,使用mongoose連線資料庫的驅動

有密碼的登入
mongodb://使用者名稱:密碼@IP地址:埠號/資料庫名
mongoose.connect('mongodb://root:[email protected]:27017/dumall')

無密碼的登入
mongodb://IP地址:埠號/資料庫名
mongoose.connect('mongodb://127.0.0.1:27017/dumall')

通過mongoose.connect.on的形式去監聽資料庫有沒有連線成功

connected表示連線成功,它裡面有一個回撥,

mongoose.connection.on("connected",function () {

   console.log("MongoDB connected success.")

})

連線失敗,去監聽error

mongoose.connection.on("error",function () {

  console.log("MongoDB connected fail.")

})

連線斷開,監聽disconnected

mongoose.connection.on("disconnected",function () {

    console.log("MongoDB connected disconnected.")

})

實現路由,這個是二級路由,通過get獲取

   next是往後繼續執行的物件

router.get("/", function (req,res,next) {

    res.send("hello,goods list .");

})

通過module.exports進行輸出,這樣才能載入到

module.exports = router;

啟動 node server/bin/www

這時候我們發現hello,goods list .已經輸出了,現在我們開始去查詢mongoDB資料庫

我們拿到上面引入的model模型Goods,model模型提供了一個API叫做find去查詢

res.json就是輸出一個json檔案

router.get("/", function (req,res,next) {
    // 第一個是引數,目前沒有入參
    // 返回的是兩個引數,第一個是報錯err,第二個是文件
    Goods.find({}, function (err,doc) {
        if(err) {
            res.json({
                status:'1',
                msg:err.message
            });
        } else {
            // 如果沒有報錯就把結果輸出
            res.json({
                status:'0',
                msg:'',
                result:{
                    count: doc.length,
                    list: doc
                }
            });
            
        }
    });
})

我們在定義集合的時候一定要加一個s,如goods

我們通過model定義一個Goods,為什麼就能找到goods這個表【集合】呢

實際上我們通過定義Good,它會自動和後面加s的goods進行關聯,就找到這個集合了,

如果這個goods沒有s的話,它和表關聯就關聯不上去

如果goods沒有加s,我們就要明確通過第三個引數明確和哪個集合進行關聯

既然後端實現了,那麼前端必然要進行請求和渲染

這裡請求我們需要進行一下代理,因為localhost:3000已經跨域了

所以要配置一下代理,在config/index.js下有個dev>proxyTable,它是個代理外掛

這個代理外掛實際上就是方便我們去做轉發的,有了這個代理外掛之後,我們就可以去指定,不用去跨域了

否則這個介面就沒辦法調了,除非通過vue-resource這種外掛才能去寫;

這就是說當我們訪問/goods的時候,預設轉發到http://localhost:3000埠

我們發現數據已經請求成功了

相關推薦

基於Express實現商品列表查詢介面

一、安裝Mongoose 本次查詢介面是基於Mongoose來實現的,Mongoose它是對MongoDB的一個封裝,就好比我們過去使用資料庫使用JDBC,但是我們通常也對JDBC進行封裝。 Mongoose提供了一系列的增刪改查的API,方便我們對MongoDB進行操作

day69_淘淘商城專案_02_dubbo介紹 + dubbo框架整合 + zookeeper + 商品列表查詢實現 + 分頁 + 逆向工程_匠心筆記

淘淘商城專案_02 1、功能分析 1.1、後臺系統所用的技術 1.2、建立資料庫 1.3、Mybatis逆向工程 1.4、系統間通訊問題 1.4.1、分析

SSH——基於datagrid實現分頁查詢

sel 雙擊 datagrid auto roman .... img order 信息 1. 修改頁面中datagrid的URL地址,訪問action // 取派員信息表格 $(‘#grid‘).datagrid( {

基於Express實現Passport用戶名和密碼登陸認證

on() highlight npm return message false als 項目 expressjs Passport項目是一個基於Nodejs的認證中間件。 Passport可以根據應用程序的特點,配置不同的認證機制。本文將介紹,用戶名和密碼的認證登陸。

HTML5 Table 佈局實現 商品列表

 執行結果如上。。。。 下面說說設計過程: 一開始試探的做的時候,是建立了一個table,這個table裡面放一本圖書的資訊。然後建立了一個列,然後建立了個td,td裡面放圖片,td那個表格多佔幾列,然後再建一個tr放圖書資訊,這樣做了之後發現,tr那一列直接放到圖書下面去了

分布式電商項目(04)--商品列表查詢及分頁

builder 就是 及其 aid auto 系統 lec 數據封裝 頁面 前言:前面寫了後天管理系統工程搭建以及框架的整合測試,今天寫一下商品列表的分頁查詢 1 需求分析 前臺使用easyui的分頁工具,後臺則使用mybatis分頁插件pagehelper 如上圖所示,

分散式電商專案(04)--商品列表查詢及分頁

前言:前面寫了後天管理系統工程搭建以及框架的整合測試,今天寫一下商品列表的分頁查詢 1 需求分析 前臺使用easyui的分頁工具,後臺則使用mybatis分頁外掛pagehelper 如上圖所示,開啟後臺首頁,點選查詢商品,按下F12,可以看到easyui的分頁介面會向controller傳送兩個資

基於redis實現商品秒殺系統

利用redis的樂觀鎖,實現秒殺系統的資料同步(基於watch實現) 使用者一: import redis conn = redis.Redis(host='127.0.0.1',port=6379) # conn.set('count',1000) with conn.pipeline()

基於solr實現商品資訊的全文檢索(windwons)

搭建環境 windows下tomcat+solr   相關軟體準備 1.安裝JDK 2.下載tomcat 3.下載solr-4.10.3.tgz.tgz 4.下載IK分詞器(IKAnalyzer2012FF_hf1.rar)   安裝步驟

四、京東商品列表查詢

prop fashion ket www. ray jsp set can 經營 product_list.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncodi

9、商品列表查詢

商品列表查詢 點選查詢商品: 傳送的請求為:GET http://localhost:8081/item/list?page=1&rows=30 對應的 jsp 頁面為:item-list.jsp 請求的 url:/item/list 請求的引數:page

4、商品列表查詢

商品列表查詢 專案原始碼 jsp為item-list.jsp ,是一個jsp片段,所以點選時,始終是一個頁面。 點選時,響應的是一個HTML片段。 下面這個片段是一個easyui-datagrid表格,樣式是在index.jsp裡面引入的。 因為始終都是在index.jsp這個頁面。

基於InfluxDB實現分頁查詢功能

  InfluxDB作為時序資料庫中的翹楚,應用範圍非常廣泛,尤其在監控領域。   最近做了一個功能,將InfluxDB中的資料查詢出來後,在前臺分頁展現,比如每頁10條,一共100頁,可以檢視首頁、末頁,進行翻頁:前頁、後頁等。   InfluxDB是時序資料庫,因此時間列

HTML5 Table 佈局實現 商品列表

 執行結果如上。。。。 下面說說設計過程: 一開始試探的做的時候,是建立了一個table,這個table裡面放一本圖書的資訊。然後建立了一個列,然後建立了個td,td裡面放圖片,td那個表格多佔幾列,然後再建一個tr放圖書資訊,這樣做了之後發現,tr那一列直接放到圖書

JavaWeb從新手到入門(五)Spring Mybatis EasyUI實現商品列表

參考:《傳智播客-淘淘商城》 一、商品列表功能 商品列表功能是後端維護購物網站的商品的功能,提供了顯示、新增、編輯、刪除、下架和上架功能,顯示如下: 二、顯示功能的實現 開啟查詢商品後,後端首先按照分頁刷新出商品的資訊,因此顯示功能是第一步。 2.1 前端程式碼實現 前端

springmvc使用list集合實現商品列表的批量修改

1將表單的資料繫結到List 1.1 需求   實現商品資料的批量修改。 1.2 需求分析   要想實現商品資料的批量修改,需要在商品列表中可以對商品資訊進行修改,餅乾且可以批量提交修改後的商品資料。 1.3 接收商品列表的pojo   List中存放物件,並將定義的

基於ElasticSearch實現商品的全文檢索檢索

全文檢索相關概念    資料分類;        結構化資料:行資料,儲存在資料庫裡,可以用二維表結構來邏輯表達實現的資料能夠用資料或統一的結構加以表示,可以用數字和符號加以表示        非結構化資料:無法用數字或統一的結構表示 文字、影象、聲音、網頁         

仿天貓App實現商品列表佈局切換效果

昨天有朋友問了我這樣一個需求,就是在天貓App中首頁進入搜尋介面,搜尋出的商品頁中,有一個按鈕可以切換商品列表的佈局。沒有用過或者用的少天貓App的趕緊下載體驗下(哈哈,給天貓打個廣告~)。如果你很懶不想去下載的話,OK,我們來看下面這兩幅圖:     上面兩幅截圖分別是點

v-for迴圈遍歷:vue-商品列表查詢資料分類顯示,json資料格式的解析

以餓了麼來舉例吧,我們要顯示下圖畫線框裡面的食物資訊,資料是遍歷json資料出來的, json資料在呢?結構是醬紫的數組裡面放了多個物件。物件裡面放了陣列的同時又放了若干物件,我們要實現上圖的效果(將套餐類,特色雞公煲套餐分類顯示),就要把foods這個數組裡面的nam

重複造輪子系列——基於Ocelot實現類似支付寶介面模式的閘道器

重複造輪子系列——基於Ocelot實現類似支付寶介面模式的閘道器 引言 重複造輪子系列是自己平時的一些總結。有的輪子依賴社群提供的輪子為基礎,這裡把使用過程的一些覺得有意思的做個分享。有些思路或者方法在大神看來可能會比較low。但是能解決實際問題,相信有需要的人也在尋找類似的解決方