1. 程式人生 > >node通過路由呼叫方法將資料返回前端

node通過路由呼叫方法將資料返回前端

首先講一下我的需求,如圖
這裡寫圖片描述
三個input標籤,輸入地址,埠,點選按鈕,採集資料
首先使用express搭建node框架,使用的是ejs模板
1、寫方法
定義一個方法collect,最後將其暴露出去 module.exports=collect,一定不要忘記暴露方法,否則無法使用

'use strict'
    var modbus = require('node-modbus')
    function collect(param,callback) {
        var client = modbus.client.tcp.complete({
            'host'
: param.ohost, 'port': param.oport, 'unitId': param.ounitId, }) client.on('connect', function () { client.readHoldingRegisters(0, 16).then(function (resp) { callback(resp) }, console.error).finally(function () { client.close() }) }) client.on('error'
, console.error) client.connect() } module.exports=collect

2、建立路由
使用express的好處就是不用自己寫很繁瑣的步驟,在route的index.js中建立一個路由

var express = require('express');
var router = express.Router();
var collect = require('../src/js/collect');//將寫好的方法引入路由模組
/* GET home page. */
router.get('/', function(req, res, next)
{
res.render('index', { title: 'Express' }); }); router.get('/collect', function(req, res, next) {//建立路由/collect collect(req.query,function (data) {//呼叫方法,傳參,回撥返回的資料 console.log("回撥資料"+data) res.send(JSON.stringify(data)) }) }); module.exports = router;

ps:可能會遇到跨域問題,如果跨域,在app.js中加入下面程式碼即可

app.all("*",function(req,res,next){
    res.header("Access-Control-Allow-Origin","*"); //允許所有訪問者跨域請求
    next();
})

啟動專案npm start ,輸入網址localhost:3000,這是預設的,你可以在www檔案中修改埠,開啟頁面,輸入地址、埠等,點選按鈕訪問你建立的路由,將返回的資料輸出到頁面上。