Абсолютные пути Nodejs в окнах с косой чертой

Вот решение с jQuery, которое работает как шарм. Он проверяет, больше ли высота окна больше высоты тела. Если это так, то он меняет верхний край нижнего колонтитула для компенсации. Тестирование в Firefox, Chrome, Safari и Opera.

$( function () {

    var height_diff = $( window ).height() - $( 'body' ).height();
    if ( height_diff > 0 ) {
        $( '#footer' ).css( 'margin-top', height_diff );
    }

});

Если ваш нижний колонтитул уже имеет верхний край (например, 50 пикселей), вам нужно будет изменить последнюю часть для:

css( 'margin-top', height_diff + 50 )
17
задан Megh Parikh 17 December 2015 в 07:42
поделиться

3 ответа

Я знаю, что уже поздно отвечать, но я думаю, что мой ответ поможет некоторым посетителям.

В Node.js вы можете легко получить текущее имя запущенного файла и его каталог, просто используя переменные __filename и __dirname соответственно.

Для того, чтобы исправить прямую и обратную косую черту в соответствии с вашей системой, вы можете использовать модуль path из Node.js

var path = require('path');

Как здесь - путанный путь, и я хочу, чтобы он был правильным, если Я хочу использовать его на моем сервере. Здесь модуль path сделает все за вас

var randomPath = "desktop // my folder / \ myfile.txt";

var correctedPath = path.normalize(randomPath); //that's that

console.log(correctedPath);
desktop/my folder/myfile.txt

Если вам нужен абсолютный путь к файлу, вы также можете использовать функцию resolve модуля path

var somePath = "./img.jpg";
var resolvedPath = path.resolve(somePath);

console.log(resolvedPath);
/Users/vikasbansal/Desktop/temp/img.jpg
29
ответ дан neaumusic 17 December 2015 в 07:42
поделиться

Я рекомендую против этого, так как это исправление самого узла, но ... ну, никаких изменений в том, как вам требуются вещи.

(function() {
  "use strict";
  var path = require('path');
  var oldRequire = require;
  require = function(module) {
    var fixedModule = path.join.apply(path, module.split(/\/|\\/));
    oldRequire(fixedModule);
  }
})();
0
ответ дан Amadan 17 December 2015 в 07:42
поделиться

Я наконец сделал это так:

var slash = require('slash');
var dirname = __dirname;
if (process.platform === 'win32') dirname = slash(dirname);

global.__base = dirname + '/';

А потом потребовать var Article = require(__base + 'app/models/article');. При этом используется косая черта пакета npm (которая заменяет обратную косую черту на косую черту в путях и обрабатывает еще несколько случаев)

2
ответ дан Megh Parikh 17 December 2015 в 07:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: