1. 程式人生 > >Node.js+express的get和post輸出json

Node.js+express的get和post輸出json

我的部落格
在上一篇Mac下express的安裝和新建專案
已經按章好了我們的環境,專案也新建好了。在瀏覽器中也看見的輸出效果:
Markdown
在專案的目錄中
Markdown
views這個目錄我展開了,但是並沒有說明。這個就是我們的檢視顯示的檔案。中心看看index.ejs我們就會知道了。

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
</head> <body> <h1><%= title %></h1> <p>Welcome to <%= title %></p> </body> </html>

原來是一個ejs模板,載入的樣式檔案是
/stylesheets/style.css這個css檔案。所以呢,我們知道這些就就可以盡情的按照自己的需求修改了。
但是這個只是一個頁面,這個頁面和資料所在的/routes/index.js是分開的,這就需要路由了。也就是我為什麼用express的原因。

Mac下安裝Node.js、測試、輸出json我們安裝的Node.js可以在我新建的test.js檔案,執行後可以正常輸出json資料。但是如果有很多介面那不是我們都要寫在這個js檔案裡面。
很顯然這不現實。
這裡express的路由的作用就出來了。
app.js檔案裡面程式碼:

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var cookieParser = require('cookie-parser');
// post請求會用到
var bodyParser = require('body-parser'); var index = require('./routes/index'); var users = require('./routes/users'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); // 設定請求頭 // application/json 介面返回json資料 // charset=utf-8 解決json資料中中文亂碼 app.use("*", function(request, response, next) { response.writeHead(200, { "Content-Type": "application/json;charset=utf-8" }); next(); }); // 路由 app.use('/', index); app.use('/', users); // 404 錯誤 var errorData_404 = { status: '404', msg: 'Not Found!', }; app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; res.end(JSON.stringify(errorData_404)); }); // 500 var errorData_500 = { status: '500', msg: 'Not Found!', }; app.use(function(err, req, res, next) { errorData_500.msg = err.message; res.end(JSON.stringify(errorData_500)); }); module.exports = app;

一、get請求

/routes/index.js檔案中插入如下程式碼
這個裡面做的是一個get請求

// 增加url 依賴
var urllib = require('url');
// 初始資料
var data = {
    status: '100', 
    msg: '操作成功',
    data: {
        userId: '123456',
        userName: 'hgdqstudio',
        blog: 'http://hgdqstudio.online'
    }
};
// get請求
router.get('/index', function (req, res, next) {
    var params = urllib.parse(req.url, true);
    var query2 = params.query;
    // 列印get請求中的介面引數
    console.log(query2);
    res.end(JSON.stringify(data));
});

我們在vim裡面cd到專案的目錄然後npm start
npm
就可以在瀏覽器中輸入:

http://localhost:3000/index

效果如圖:
json
至此get請求就搞完了。我們在這個接口裡面拼接引數,可以在終端裡面列印的。

二、post請求

/routes/users.js

var dataSuccess = {
    status: '100', 
    msg: '登入成功',
    data: {
        userId: '20170113',
        userName: 'hgdqstudio',
        blog: 'http://hgdqstudio.online'
    }
};
var dataError = {
    status: '99', 
    msg: '使用者名稱或密碼錯誤'
};
// 登入介面
router.post('/login',function (req, res, next) {
    // 列印post請求的資料內容
    console.log(req.body);
    console.log(req.body.username);
    console.log(req.body.password);
    if (req.body.username == "hgdqstudio" && req.body.password == "123456") {
        res.end(JSON.stringify(dataSuccess));
    } else {
        res.end(JSON.stringify(dataError));
    }
});

做的是一個模擬的登入介面。
可以自己寫一個ajax測試

mui.ajax("http://127.0.0.1:3000/login",{
    data: {
        username: 'hgdqstudio',
        'password': 123456  //password不加引號顯示像一個關鍵字,所以就嘿嘿…… 
    },
    dataType: 'json',
    type: 'post',  
    timeout: 10000,   
    success: function(data){ 
        console.log(data.msg);
    },
    error: function(xhr, type, errerThrown){

    }
});

也可以使用Postman測試:
postman
在app.js檔案裡面多了一個body-parser的依賴。
這個是express裡面的一箇中間元件。

相關推薦

Node.js+express的getpost輸出json

我的部落格 在上一篇Mac下express的安裝和新建專案 已經按章好了我們的環境,專案也新建好了。在瀏覽器中也看見的輸出效果: 在專案的目錄中 views這個目錄我展開了,但是並沒有說

linux環境安裝node.js環境pm2

linux node.js pm2 1.安裝腳本,請仔細閱讀逐行執行: #!/bin/bash #檢查是否已經安裝 rpm -qa | grep python #查版本 python #最好是重新安裝 Python推薦版本( >= v2.5.0 & < 3.0.0 )

node.js】GET/POST請求、Web 模塊

ima esp ges 實例 bst node.js 參數 模塊 pos 獲取GET請求內容 node.js 中 url 模塊中的 parse 函數提供了這個功能。 var http = require(‘http‘); var url = require(‘url‘);

[譯] Node.js 高效能可擴充套件應用程式的最佳實踐 [第 2/3 部分]

原文地址:Good practices for high-performance and scalable Node.js applications [Part 2/3] 原文作者:virgafox 譯文出自:掘金翻譯計劃 本文永久連結:github.com/xitu/gold

[譯] Node.js 高效能可擴充套件應用程式的最佳實踐 [第 1/3 部分]

原文地址:Good practices for high-performance and scalable Node.js applications [Part 1/3] 原文作者:virgafox 譯文出自:掘金翻譯計劃 本文永久連結:github.com/xitu/gold

HttpUtils工具類post請求json引數傳輸

import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.ResponseH

Node.js 基金會 JS 基金會合並:已在討論具體細節

   10月份我們曾報道過 Node.js 基金會和 JS 基金會宣佈合併意向的訊息,合併意向意味著兩個基金會的董事會已同意公開討論與可能合併的有關事情,正在向社群徵求意見。近日,Node.js 基金會在官網更新了合併進度,隨著討論會議的

搭建 React Native 開發環境 —— Node.js 安裝配置

1. 前言 在正式開發 React Native 應用之前,需要先搭建好 React Native 的開發環境。搭建 React Native 開發環境有以下幾個主要步驟。 原生開發工具:iOS 開發使用 Xcode,Android 開發使用 Android

node.js exportsmodule.exports的區別

要首先了解值型別以及引用型別 (1)值型別:字串(字串),數值(數),布林值(布林值),無,未定義 (2)引用型別:物件(物件),陣列(陣列),函式(功能) 值型別資料儲存在棧上,而引用型別資料儲存在堆上(此圖只為解釋堆疊,與下文的程式碼中變數無關係) 值型別:

node.js——http服務、服務代理、後臺跨域

http HTTP協議(HyperText Transfer Protocol,超文字傳輸協議)是用於從WWW伺服器傳輸超文字到本地瀏覽器的傳輸協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,

Ubuntu 上 Node.js 安裝解除安裝

1、Ubuntu 安裝 Node.Js 1.1、執行檢查可更新的軟體: sudo apt-get update 1.2、先用普通的apt工具安裝低版本的node,然後再升級最新。 sudo apt-get install nodejs sudo apt install nodejs-legacy sudo

Node.JS, MongooseJade搭建OAuth2伺服器 (一)

今天我們來看一個Node.JS的實際應用。這是國外的Paper應用開發者所搭建的OAuth2伺服器,使用的主要技術包括: - Node.JS 的Express框架 - Mongoose工具集,Mongodb的一個流行庫,方便建立模型。 - bcrypt,用於密碼加密 -

node 使用getpost向後臺請求資料的使用方式對比

from:http://blog.csdn.net/u012251421/article/details/49493561 做過web開發的朋友對get和post 的請求的區別肯定十分了解,我就不多講述了。 下面主要介紹一下get和post請求在node中使用的不同

node.js專案中的package.json

node.js建立的專案的根目錄下,有一個package.json檔案,這是一個配置檔案,裡面是一個寫滿專案中所需要模組以及專案中的配置資訊的json格式的檔案 { "name": "node

node.js與ajax互動之 json 與 jsonp 資料格式問題

將 dataType 從 json 改成 jsonp 之後,新的問題出現了,就是 ajax 無法解析 json 型別的資料。這就很尷尬了,看了好幾篇怎麼解析的問題,都沒看懂。後來終於看懂了。簡而言之就是 dataType 改成 jsonp 的資料格式以後,再傳 json 格式

node.js 安裝 配置Sublime Text2的Nodejs

第二步:安裝nodejs 下載完成之後,雙擊"node-v0.10.28-x86.msi",開始安裝nodejs,自定義安裝在D:\tools\nodejs下面。 在cmd控制檯輸入:node -v,控制檯將打印出:v0.10.28,出現版本提示表示安裝成功。

10+ 最佳的 Node.js 教程例項

如果你正在找Node.js的學習資料及指南,那麼請繼續(閱讀),我們的教程將會覆蓋即時聊天應用、API服務編寫、投票問卷應用、人物投票APP、社交授權、 Node.js on Raspberry Pi等等。 以下是Node.js入門的簡單介紹,如果你對Node.js略有

【Nodejs】【node.js 安裝 配置Sublime Text的Node.js

使用 man 編輯 sql text odi environ 文件名 ren 【一】 【安裝nodejs】 第一步:下載安裝文件:     https://nodejs.org/en/download/   第二步:安裝nodejs     下載完成之後,雙擊"n

Node.js+express的介面適配getpost輸出json

var dataSuccess = { status: '100', msg: '登入成功', data: { userId: '20170113',

cocos creator學習01 關於cocos creator 通過get post連接node.js服務器的初步探索

erl dao save ready ... img manual file ole 一、node.js的安裝註意事項    1.參考http://www.runoob.com/nodejs/nodejs-install-setup.html    2.node.js如果不