Lew*_*ffa 8 javascript module node.js
我有一个包含 AJAX 功能的模块,我希望导出到我的客户端控制器,但我得到的模块未定义,我使用的是 NodeJS 和 Cloud9 环境。
AJAX 模块
module.exports = {
appUrl: window.location.origin,
ready: function(fn) {
if(typeof fn !== 'function') {
return;
}
if(document.readyState === 'complete') {
return fn();
}
document.addEventListener('DOMContentLoaded', fn, false);
},
ajaxRequest: function(method, url, callback) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState === 4 && xmlhttp.status === 200) {
callback(xmlhttp.response);
}
};
xmlhttp.open(method, url, true);
xmlhttp.send();
}
};
Run Code Online (Sandbox Code Playgroud)
客户端控制器
'use strict';
var ajaxFunctions = require("../common/ajax-functions.js");
(function(){
var profileId = document.querySelector('#profile-id') || null;
var profileUsername = document.querySelector('#profile-username') || null;
var profileRepos = document.querySelector('#profile-repos') || null;
var displayName = document.querySelector('#display-name');
var apiUrl = ajaxFunctions.appUrl + '/api/:id';
function updateHtmlElement(data, element, userProperty) {
element.innerHTML = data[userProperty];
}
ajaxFunctions.ready(ajaxFunctions.ajaxRequest('GET', apiUrl, function(data){
var userObject = JSON.parse(data);
updateHtmlElement(userObject, displayName, 'displayName');
if(profileId !== null) {
updateHtmlElement(userObject, profileId, 'id');
}
if(profileUsername !== null) {
updateHtmlElement(userObject, profileUsername, 'username');
}
if(profileRepos !== null) {
updateHtmlElement(userObject, profileRepos, 'publicRepos');
}
}));
})();
Run Code Online (Sandbox Code Playgroud)
看起来您正在尝试在浏览器中运行代码,而您收到的错误表明module未定义。如果此代码打算在浏览器中运行,则必须首先使用 Webpack 或 Browserify 对其进行打包。
| 归档时间: |
|
| 查看次数: |
14902 次 |
| 最近记录: |