首页 > 解决方案 > 试图包含一个简单的模块 - 无法让它工作纯 Javascript

问题描述

我正在尝试包含我制作的一个简单模块,但它不起作用。

在我的index.html页面中,我包含了这个文件:

登录-view-model.js

import {localStorageService} from '../shared/local-storage-module.js';

// Login View Model

var LoginViewModel = function () {

    self = this;
    this.token = ko.observable();

    this.email = ko.observable("john@gmail.com");
    this.password = ko.observable("12345");

    self.submit = function() {
        (async () => {
            const rawResponse = await fetch('http://localhost/chitra-admin/api/user/', {
              method: 'POST',
              mode: 'cors',
              headers: {
                'Accept': 'application/json',
              },
              body: JSON.stringify({email: self.email(), password: self.password()})
            });

            const content = await rawResponse.json();

            if(content.response.id){
                self.token(content.response.token);
                localStorageService.save('token', self.token());
                alert(sessionStorage.getItem('token'));
            }

            console.log(content.request.token);

          })(); 
    }

}; // End View Model


// Helper Functions For Fetching Data
function handleErrors(response) {
    if (!response.ok) {
        console.log(JSON.stringify(response));
        throw Error(response.statusText);
    }
    return response;
}



ko.applyBindings(new LoginViewModel());

我收到了这个错误:

Uncaught SyntaxError: Unexpected token {

我看不出哪里出错了。我的local-storage-module.js非常简单:


const localStorageService = {

    save: function(key, val){
        sessionStorage.setItem(key, val);
    }

}



export {localStorageService} ;

我知道这个功能不实用,但我正在学习。我最终将包含更复杂的模块,但我什至无法让这个简单的模块工作。

有任何想法吗?

谢谢。

标签: javascriptknockout.js

解决方案


做这个 :

在 local-storage-module.js 中而不是在 login-view-model.js中export {localStorageService} ;添加module.exports = localStorageServiceconst localStorageService = require('../shared/local-storage-module.js')

这有点老派,但它可以在纯 JS 中工作。:)


推荐阅读