fs.readFileSync() 函数无法按预期工作 [英] fs.readFileSync() function doesn't work as expected

查看:52
本文介绍了fs.readFileSync() 函数无法按预期工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码未按预期工作:

The following code doesn't work as expected:

var fs = require('fs');
var PeerServer = require('peer').PeerServer;

var server = PeerServer({
port: 9000,
path: '/peerjs',
ssl: {
    key: fs.readFileSync('../certificates/key.pem', 'utf8'),
    cert: fs.readFileSync('../certificates/cert.pem', 'utf8')
}
});

它返回以下错误:

/Users/mzn/.meteor/packages/meteor-tool/.1.6.0_1.i59qpv.ylxp8++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280 W20180606-15:08:29.566(4)?(STDERR)抛出(前);W20180606-15:08:29.566(4)?(STDERR) ^ W20180606-15:08:29.566(4)?

/Users/mzn/.meteor/packages/meteor-tool/.1.6.0_1.i59qpv.ylxp8++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280 W20180606-15:08:29.566(4)? (STDERR) throw(ex); W20180606-15:08:29.566(4)? (STDERR) ^ W20180606-15:08:29.566(4)?

(STDERR) W20180606-15:08:29.567(4)?(STDERR) 错误:ENOENT:没有

(STDERR) W20180606-15:08:29.567(4)? (STDERR) Error: ENOENT: no such

文件或目录,打开'../certificates/key.pem'

file or directory, open '../certificates/key.pem'

W20180606-15:08:29.567(4)?(STDERR) 在 Object.fs.openSync(fs.js:646:18) W20180606-15:08:29.567(4)?(STDERR) 在

W20180606-15:08:29.567(4)? (STDERR) at Object.fs.openSync (fs.js:646:18) W20180606-15:08:29.567(4)? (STDERR) at

Object.fs.readFileSync (fs.js:551:33) W20180606-15:08:29.568(4)?

Object.fs.readFileSync (fs.js:551:33) W20180606-15:08:29.568(4)?

(STDERR) 在 main.js (chat/server/main.js:15:11)

(STDERR) at main.js (chat/server/main.js:15:11)

W20180606-15:08:29.568(4)?(STDERR) 在文件评估

W20180606-15:08:29.568(4)? (STDERR) at fileEvaluate

(packages/modules-runtime.js:343:9) W20180606-15:08:29.568(4)?

(packages/modules-runtime.js:343:9) W20180606-15:08:29.568(4)?

(STDERR) at require (packages/modules-runtime.js:238:16)

(STDERR) at require (packages/modules-runtime.js:238:16)

W20180606-15:08:29.569(4)?(STDERR) 在

W20180606-15:08:29.569(4)? (STDERR) at

/Users/mzn/Desktop/All/chat/.meteor/local/build/programs/server/app/app.js:537:1

/Users/mzn/Desktop/All/chat/.meteor/local/build/programs/server/app/app.js:537:1

W20180606-15:08:29.569(4)?(STDERR) 在 infos.forEach.info

W20180606-15:08:29.569(4)? (STDERR) at infos.forEach.info

(/Users/mzn/Desktop/All/chat/.meteor/local/build/programs/server/boot.js:414:13)

(/Users/mzn/Desktop/All/chat/.meteor/local/build/programs/server/boot.js:414:13)

以下是我的文件结构

我在 main.js

我尝试了此处发布的解决方案,但没有为我解决.

I tried the solutions posted here but it did not solve it for me.

我在这里做错了什么?

推荐答案

if (Meteor.isServer) {
    Meteor.startup(function () {
    // code to run on server at startup
    var base = process.env.PWD;
    var fs = Npm.require('fs');
    var PeerServer = require('peer').PeerServer;


    var server = PeerServer({
        port: 9000,
        path: '/peerjs',
        ssl: {
            key: fs.readFileSync(base + '/chat/certificates/key.pem', 'utf8'),
            cert: fs.readFileSync(base + '/chat/certificates/cert.pem', 'utf8')
        }
    });
});
}

感谢@Kevin 简单回答这里.

Credit to @Kevin Simple answer here.

希望能帮您解决

这篇关于fs.readFileSync() 函数无法按预期工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆