为什么我的变量在浏览器中不起作用,如何使它们全局化?

时间:2019-07-05 06:58:44

标签: javascript node.js browserify

因此,我希望使用node包时,可以将来自app.js的变量可在浏览器中使用。我有两个文件,index.html和app.js。然后,Browserify使用此脚本browserify app.js -o bundle.js运行。每当我尝试通过Dev Tools运行函数或访问变量时,它总是返回带有参考错误的信息。

我尝试在线查看Browserify的全局变量和为Browserify运行的不同脚本,但是这些都不起作用。我还尝试过将原始app.js文件添加到index.html,并且在使用Browserify之前可以访问所有变量。

//This is the require section
var SpotifyWebApi = require('spotify-web-api-node');
var spotifyApi = new SpotifyWebApi({
  redirectUri: redirectUri,
  clientId: clientId,
  credentials
});

//This for some reason works
var authorizeURL = spotifyApi.createAuthorizeURL(scopes, state);
console.log(authorizeURL);
document.getElementById("url").href = authorizeURL;

//This function will not run with a TypeError
spotifyApi.authorizationCodeGrant("omitted").then(
  function (data) {
    console.log('The token expires in ' + data.body['expires_in']);
    console.log('The access token is ' + data.body['access_token']);
    console.log('The refresh token is ' + data.body['refresh_token']);

    // Set the access token on the API object to use it in later calls
    spotifyApi.setAccessToken(data.body['access_token']);
    spotifyApi.setRefreshToken(data.body['refresh_token']);
  },
  function (err) {
    console.log('Something went wrong!', err);
  }
);

//This doesn't work below
const urlParams = new URLSearchParams(window.location.search);
const myParam = urlParams.get('code');
console.log(myParam);

根本没有出现spotifyApi变量,myParam将记录日志,但是后来我无法访问该变量,因此我从上面使用了Browserify脚本。 另外,请不要将其标记为重复,我已经尝试了不同的Browserify脚本,将其标记为global.etc并使用Webpack。

0 个答案:

没有答案