TypeError:PUBNUB.init不是函数

时间:2017-02-03 06:07:32

标签: javascript node.js pubnub

我正在使用Node.js,我试图让PubNub集成,让我的聊天室运行起来。我一直在关注许多教程,他们似乎都从他们的客户端执行PubNub。但是,为了确保我的发布密钥和订阅密钥的安全性,我希望从我的服务器端(Nodejs)执行PubNub。但是,当我尝试这样做时,问题就出现了。 这是我的服务器:

var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var request = require('request');
var pubnub = require('pubnub');

  pubnub = pubnub.init({
  subscribe_key: 'sub-c-demo',
  publish_key: 'pub-c-demo',
  ssl: true
});
//Defining routes
var routes = require('./routes/index');

//Init express 
var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));

//View Engine
app.set('view engine', 'ejs');

//Set Static Folder
app.use(express.static(path.join(__dirname, 'public')));

//Get route
app.use('/', routes);



//Set Port
app.set('port', (process.env.PORT || 3000));

app.listen(app.get('port'), function(){
    console.log('3000 is the magic port!!');
});

为什么我在尝试初始化pubnub时会得到TypeError: pubnub.init is not a function

$ node server
/Users/macbookpro/Desktop/project007/server.js:8
var pubnub = pubnub.init({
                    ^

TypeError: pubnub.init is not a function
    at Object.<anonymous> (/Users/macbookpro/Desktop/project007/server.js:8:21)
    at Module._compile (module.js:573:32)
    at Object.Module._extensions..js (module.js:582:10)
    at Module.load (module.js:490:32)
    at tryModuleLoad (module.js:449:12)
    at Function.Module._load (module.js:441:3)
    at Module.runMain (module.js:607:10)
    at run (bootstrap_node.js:382:7)
    at startup (bootstrap_node.js:137:9)
    at bootstrap_node.js:497:3

我遵循了似乎所有必要步骤:

npm i pubnub --save

var pubnub = require('pubnub');

https://cdn.pubnub.com/sdk/javascript/pubnub.4.4.2.min.js (包括我标题中的最新sdk)

但似乎某处出现了错误导致我对错误以​​及其他一些事情感到困惑。

1)。我从三个方面一直在拼凑这些东西,但我应该真正关注哪些教程?

https://vimeo.com/35557579

https://www.pubnub.com/docs/nodejs/pubnub-javascript-sdk-v4

https://www.pubnub.com/docs/javascript/pubnub-javascript-sdk-v4

2)。我的发布密钥和订阅密钥是否需要保护,或者我可以从客户端运行PubNub,如大多数教程中所示?

3)。忘记服务器端和客户端,我应该将PubNub作为javascript文件执行并链接脚本吗? <script src="js/pubnubchatroom.js"></script>

我是这个东西的新手,我只想试着把头包裹起来。提前谢谢!

1 个答案:

答案 0 :(得分:0)

PubNub V4 SDK NodeJS new Init

有一种初始化PubNub SDK的新方法。请参阅以下示例。 v4 SDK不兼容插件。您可以在环境之间成功混合使用v4和v3 SDK。

const PubNub = require('pubnub');
const pubnub = new PubNub({
    publishKey : 'demo',
    subscribeKey : 'demo'
})
  1. 关注https://www.pubnub.com/docs/nodejs/pubnub-javascript-sdk-v4
  2. 可以公开pub / sub键。 永远不会暴露您的密钥。
  3. PubNub与此方面的任何策略兼容。