Soy nuevo en Javascript. Estoy tratando de cargar el siguiente script usando Node.js (ver. 0.8.8, tiene que hacerse en esta versión específica), OS - Windows 10:
//require('look').start(); var main = require('skilap-core'); if (process.argv[2]=="automated") { process.on("message",function (msg) { if (msg.c == "startapp") { var app = main.createApp(msg.data); app.startApp(__dirname+"/data",function (err) { process.send({c:"startapp_repl",data:err}) }); } }) } else { var app = main.createApp(); app.startApp(__dirname+"/data",function (err) { if (err) console.log(err); }); module.exports = app; }Pero me sale el siguiente error:
> TypeError: Object #<Object> has no method 'createApp' at Object.<anonymous> D:\Downloads\skilap\skilap\app.js:13:17) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:492:10) at process.startup.processNextTick.process._tickCallback(node.js:244:9)Según tengo entendido, el módulo se carga correctamente, pero no se compila. Investigué en la web y también vi otras preguntas relacionadas en este sitio, pero no puedo ver cuál es realmente el problema. ¿Qué significa el error y qué se debe cambiar para iniciar la aplicación? Cualquier ayuda sería apreciada.
Necesitas un módulo del que nunca he oído hablar:
var main = require('skilap-core'); Este es un objeto javascript. En su código, está intentando llamar a un método createApp() en ese objeto:
var app = main.createApp(); El objeto main no tiene la función createApp() .
Usaría un depurador o insertaría un console.log(main) después de la solicitud para ver cómo se ve realmente el objeto.
npm pack skilap-core para descargarlo como un archivo tgz y examinarlo. No parece haber una función createApp() en absoluto. Parece querer tomar algún tipo de aplicación web personalizada como parámetro:
module.exports = function (webapp) { var app = webapp.web; var ctx = webapp._ctx; var prefix = webapp.prefix; var api = webapp; app.get(prefix, function (req, res, next) { res.redirect(prefix+"/user"); }) app.get("/", webapp.layout(), function(req, res, next) { ...Cambié la línea var main = require('skilap-core') a var main = require('./modules/core/lib/core.js') (la ruta al archivo del módulo) y el módulo comenzó a funcionar.