node通过路由调用方法将数据返回前端

首先讲一下我的需求,如图
node通过路由调用方法将数据返回前端_第1张图片
三个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文件中修改端口,打开页面,输入地址、端口等,点击按钮访问你创建的路由,将返回的数据输出到页面上。

你可能感兴趣的:(node)