node.js - open - npm clear cache--force
Error JS del nodo: ENOENT (6)
Para ampliar un poco sobre por qué ocurrió el error: Una barra inclinada al comienzo de una ruta significa "comenzar desde la raíz del sistema de archivos y buscar la ruta determinada". Sin barra inclinada significa "comenzar desde el directorio de trabajo actual y buscar la ruta determinada".
El camino
/tmp/test.jpg
por lo tanto, se traduce en buscar el archivo test.jpg en la carpeta tmp en la raíz del sistema de archivos (por ejemplo, c: / en windows, / on * nix), en lugar de la carpeta webapp . Agregar un punto (.) Al frente de la ruta lo cambia explícitamente para que diga "comience desde el directorio de trabajo actual", pero es básicamente lo mismo que dejar la barra hacia afuera por completo.
./tmp/test.jpg = tmp/test.jpg
Lo sigo junto con: The Node Beginner Book
Después de probar con el código de otra publicación SO:
var Fs = require(''fs'');
var dirs = [''tmp''];
var index;
var stats;
for (index = 0; index < dirs.length; ++index)
{
try
{
stats = Fs.lstatSync(dirs[index]);
console.log(dirs[index] + ": is a directory? " + stats.isDirectory());
}
catch (e)
{
console.log(dirs[index] + ": " + e);
}
}
El error persiste:
Error: ENOENT, no existe el archivo o directorio ''tmp''
Los permisos en tmp son 777.
requestHandlers.js
var querystring = require("querystring"),
fs = require("fs");
function start(response, postData) {
console.log("Request handler ''start'' was called.");
var body = ''<html>''+
''<head>''+
''<meta http-equiv="Content-Type" ''+
''content="text/html; charset=UTF-8" />''+
''<style>input{display: block; margin: 1em 0;}</style>''+
''</head>''+
''<body>''+
''<form action="/upload" method="post">''+
''<textarea name="text" rows="20" cols="60"></textarea>''+
''<input type="submit" value="Submit text" />''+
''</form>''+
''</body>''+
''</html>'';
response.writeHead(200, {"Content-Type": "text/html"});
response.write(body);
response.end();
}
function upload(response, postData) {
console.log("Request handler ''upload'' was called.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("You''ve sent the text: "+
querystring.parse(postData).text);
response.end();
}
function show(response, postData) {
console.log("Request handler ''show'' was called.");
fs.readFile("/tmp/test.jpg", "binary", function(error, file) {
if(error) {
response.writeHead(500, {"Content-Type": "text/plain"});
response.write(error + "/n");
response.end();
} else {
response.writeHead(200, {"Content-Type": "image/jpg"});
response.write(file, "binary");
response.end();
}
});
}
exports.start = start;
exports.upload = upload;
exports.show = show;
Index.js
var server = require("./server");
var router = require("./router");
var requestHandlers = require("./requestHandlers");
var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
handle["/show"] = requestHandlers.show;
server.start(router.route, handle);
Un poco perplejo, cualquier ayuda apreciada.
Puede incluir un archivo de jade diferente en su plantilla, que a partir de un directorio diferente
views/
layout.jade
static/
page.jade
Para incluir el archivo de diseño de views dir a static / page.jade
page.jade
extends ../views/layout
cambio
"/tmp/test.jpg".
a
"./tmp/test.jpg"
si su carpeta tmp es relativa al directorio donde se está ejecutando su código, elimine /
delante de /tmp
.
Entonces solo tienes tmp/test.jpg
en tu código. Esto funcionó para mí en una situación similar.
use "temperatura" en lugar de "tmp"
"/temp/test.png"
me funcionó después de darme cuenta de que el tmp es una carpeta temporal que no existía en mi computadora, pero mi temperatura era mi carpeta temporal
///
EDITAR:
También creé una nueva carpeta "tmp" en mi unidad C: y todo funcionó perfectamente. El libro puede haber olvidado mencionar ese pequeño paso
echa un vistazo a http://webchat.freenode.net/?channels=node.js para chatear con algunos de la comunidad node.js
"/tmp/test.jpg"
no es la ruta correcta; esta ruta comienza con /
que es el directorio raíz.
En Unix, el acceso directo al directorio actual es .
Prueba esto "./tmp/test.jpg"