微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js中的http.createserver和net.createserver一起

如何解决node.js中的http.createserver和net.createserver一起

我在节点js中有2个脚本。一种使用“ http”,另一种使用“ net”。我想将这些脚本一起制作成一个脚本。我的“ http”脚本如下:

import React from 'react';
import { Provider } from 'react-native-paper';
import App from './src';
import { theme } from './src/core/theme';
import { NavigationContainer } from '@react-navigation/native';
import Drawer from './src/components/Drawer';
export default () => {
  
  return (
    <NavigationContainer>
      <Drawer />
    </NavigationContainer>
  );
};

'net'脚本:

const http = require('http');
const hostname = 'localhost';
const port = 3000;
const server = http.createServer((req,res) => {
 console.log(req.headers);
 res.statusCode = 200;
 res.end('<html><body><h1>Hello,World!</h1></body></html>');
})
server.listen(port,hostname);

我的目的是在启动“ http”脚本后运行“ net”脚本。

解决方法

将整个net script包装在导出的函数中:

var net = require('net');

module.exports = () => {
    var client = new net.Socket();
    client.connect(4352,'x.x.x.x',function() {
        console.log('Connected');
        client.write('%1POWR 1\r\n');
    });
    
    client.on('data',function(data) {
        console.log('Received: ' + data);
        client.destroy(); // kill client after server's response
    });
    
    client.on('close',function() {
        console.log('Connection closed');
    });
}

http script中导入并执行导出的函数:

const http = require('http');
const hostname = 'localhost';
const port = 3000;
require('path/to/net/script')() //Add to anywhere you like
const server = http.createServer((req,res) => {
 console.log(req.headers);
 res.statusCode = 200;
 res.end('<html><body><h1>Hello,World!</h1></body></html>');
})
server.listen(port,hostname);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。