Jak załadować zewnętrzne pliki js, które nie pasują do formatu node.js. Próbuję zaimportować bibliotekę serializowaną json. Jak mogę to zrobić?Jak importować pliki non-node.js?
Odpowiedz
2 odpowiedzi ...
1) przedmiot JSON jest wbudowany w node.js, więc można po prostu zadzwonić JSON.parse() i JSON.stringify(), nie ma potrzeby importowania kod zewnętrzny dla tego konkretnego przypadku.
2) do importu kodu zewnętrznego, node.js następująco specyfikację modułu CommonJS i można użyć require()
więc jeśli masz plik o nazwie external.js (w tym samym katalogu, co resztę swojego kod):
this.hi = function(x){ console.log("hi " + x); }
i od węzła zrobić:
var foo = require("./external");
foo.hi("there");
widać wyjście hi there
+1 dla this.hi = function (x) {console.log ("hi" + x); } – iwill
Napisz opakowania lub zmień kod.
Co powinno automagicznie sprawdzi? W jaki sposób Node powinien wiedzieć, które funkcje powinny zostać wyeksportowane, czy nie?
Wszystko, co możesz zrobić, to dopasować kod do standardu Common JS, ale zanim to zrobisz, sprawdź na Wiki Node.js na Wiki Node.js i sprawdź, czy ktoś już wykonał zadanie:)
Jeśli napisać kod siebie, że powinien działać w przeglądarce i node.js można użyć opakowanie jak na następujący:
(function(node) {
// Your Awesome code here
if (node) {
exports.foo = ...
} else {
window.foo = ...
}
})((function(){return ('' + this).slice(8, -1) !== 'DOMWindow';})());
Jeśli ufasz kodu (to znaczy, naprawdę zaufanie kod), możesz wtedy eval
it:
eval(require('fs').readFileSync('somefile.js', 'utf8'));
Nie polecam robić tego ze zdalnym kodem (bo może się to zmienić bez twojej wiedzy), ale jeśli masz lokalną kopię czegoś, to powinno być dobrze.
To jest straszna odpowiedź. I kocham to. –
Proste wymaganie, ponieważ w zaakceptowanej odpowiedzi działa lepiej niż czytanie JSON. Również jest korzystne, jeśli JSON jest plikiem konfiguracyjnym i chcesz go wprowadzić do pliku .js za pomocą pakietu internetowego, plecaka itp. – Ozil
wbudowana obsługa json (np. JSON.stringify (obj)), czy szukasz czegoś poza już obsługiwanym zestawem funkcji? – davin
@david Tylko na teraz i na przyszłość. Nie chcę szukać wszystkich wersji node.js. – Will03uk
Zdecydowanie nie importuj drugiej biblioteki JSON (zakładam, że patrzysz na json2.js?). JSON.parse() i JSON.stringify() są wbudowane w węzeł od samego początku. –